Crossin的编程教室

标题: 新人请教 [打印本页]

作者: trista009    时间: 2018-9-17 17:29
标题: 新人请教
num = 10
print('Guess what I think?')
answer = int(input())
if(answer < num):
    result = answer < num
    print('too small?')
    print(result)
elif(answer > num):
    result = answer > num
    print('too big?')
    print(result)
elif(answer == num):
    result = answer == num
    print('equal?')
    print(result)
我用的是py3的呀,为什么输入字母还是报错呢?不是已经强转了int类型了吗?我带上引号也不好用呢?求大神们解答,跪求跪求哈

C:\Users\p_zduan\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/p_zduan/PycharmProjects/untitled/newtest02.py
Guess what I think?
i
Traceback (most recent call last):
  File "C:/Users/p_zduan/PycharmProjects/untitled/newtest02.py", line 3, in <module>
    answer = int(input())
ValueError: invalid literal for int() with base 10: 'i'

Process finished with exit code 1



作者: 风扇很响    时间: 2018-9-17 19:55
但是你还是要输数字啊,没有输入字母然后转成int型的
作者: crossin先生    时间: 2018-9-18 20:56
是啊,你输个 i ,叫程序也很难做哎
作者: trista009    时间: 2018-9-19 09:51
crossin先生 发表于 2018-9-18 20:56
是啊,你输个 i ,叫程序也很难做哎

那这个int的强制转换都是能转什么呢?是说把字符5转成整型5的意思吗
作者: trista009    时间: 2018-9-19 10:07
crossin先生 发表于 2018-9-18 20:56
是啊,你输个 i ,叫程序也很难做哎

哦哦,我貌似明白了,就是input获取的是一个字符串,然后需要用数字做比较所以把字符串转成数字,如果是123这样的可以直接转成对应的123,这样就能做比较了,因为input不能获取数字的值是吧,
但是你说那个a啊啥的b啊啥的不是有什么ASCII码么?不能通过int这样的强转转成对应的ASCII码吗?
作者: crossin先生    时间: 2018-9-19 16:58
trista009 发表于 2018-9-19 10:07
哦哦,我貌似明白了,就是input获取的是一个字符串,然后需要用数字做比较所以把字符串转成数字,如果是1 ...

python里不能,有专门的方法
作者: trista009    时间: 2018-9-19 17:20
crossin先生 发表于 2018-9-19 16:58
python里不能,有专门的方法

明白了,谢谢o(* ̄︶ ̄*)o




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5