潺陵大地 发表于 2022-7-24 17:50:35

input问题求助

一、print(type(input()))
8
<class 'str'>
n = input()
print(type(n))
8
8
为什么上面的是显示输入的类型是字符型
下面的则变为了8?
二、
n = input()
s = "〇一二三四五六七八九"
for c in "0123456789":
   if eval(n) == int(c) :    # 这里   if int(n) == int(c) :   都是显示错误 ? 将输入的内容转为数值,显示错误
         n = s   
   
print(n)



显示错误如下 :

Traceback (most recent call last):
File "D:\xhktSoft\python\xhkt\考生文件夹\PY102.py", line 11, in <module>
    if int(n) == int(c) :
ValueError: invalid literal for int() with base 10: '八'


谢谢!

临时号 发表于 2022-7-24 18:09:11

一.我去运行了你的代码,发现跟你说的不一样
D:\command\Python>python test.py
8
<class 'str'>

D:\command\Python>
二.
n = input()
s = "〇一二三四五六七八九"
for c in "0123456789":
   if eval(n) == int(c) :    # 这里   if int(n) == int(c) :   都是显示错误 ? 将输入的内容转为数值,显示错误
         n = s
         break
   
print(n)

潺陵大地 发表于 2022-7-24 18:42:07

临时号 发表于 2022-7-24 18:09
一.我去运行了你的代码,发现跟你说的不一样

二.

感谢,第一个 我直接在IDLE 写的,没显示出字符型,但是新建了文件写文件 里又能显示。第二个 加break,我懂了,谢谢你,找到了原因了,变量n 已经赋值了,所以不能再进行eval(),谢谢你!
页: [1]
查看完整版本: input问题求助