- 今天用了个函数定义,用输入input的时候
a,b,c=int(input())
报错
ValueError: invalid literal for int() with base 10: '2,3,1'
- 原来,用
int(input())
强制转换的时候是整体转换,当输入2,3,1
时,引号加到了'2,3,1'
,所以,要用eval
来进行转换,a,b,c=eval(input())
在进行转换的过程中去掉引号,他认定三个数为三个整数,所以可以进行下去,如图示。 - 当
eval
输入为qwe
的时候,实际上接收的是'qwe'
,去掉引号是qwe
,它并不能认定是什么,故要输入'"qwe"'
,如果要区分,则要如图所示输入a,b,c = eval('"q","w","e"')
在这里我刚开始很难理解,所以我百度了很多,用两个例子做对比,定义a,b,c的值
a=1
,b=2
,c=3
,定义s='[a,b,c]'
,1.输出`s`为`'[a,b,c]'` 2.输出`eval(s)`为`[10, 20, 30]`
如图,懂了。
总结,
eval
函数就是去掉引号的一个函数,然后定义的一个函数,如果引号里面是数字,那么它会定义int类型,例:'1'
。如果有两个引号,脱掉一层引号里面是字符串str类型,例:'"a"'
。如果有一个引号,脱去后他会看系统有没有对应的内容,比如:a=2
,eval('a')
那么他就会输出2
。
1
555
cnvccreluu
《怨鬼之家》恐怖片高清在线免费观看:https://www.jgz518.com/xingkong/77887.html
jefsddcfed
你的文章让我感受到了不一样的风景,谢谢分享。 http://www.55baobei.com/FeGHRMi8ce.html
soqgrvugfs
你的文章让我感受到了不一样的风景,谢谢分享。 http://www.55baobei.com/FeGHRMi8ce.html
ezbnmxjuuj
你的文章让我感受到了艺术的魅力,谢谢! https://www.4006400989.com/qyvideo/70883.html