水煮鳄鱼 发表于 2020-6-7 18:59:21

新入门python的小白一个小问题

请问下小甲鱼python课程前几节课中的
temp = input(‘不妨猜一下小甲鱼现在心里想的哪个数字’)
guess=int(temp)
这里第二行代码的int括号里为什么是temp?我直接写int不行吗?

Twilight6 发表于 2020-6-7 19:01:49

本帖最后由 Twilight6 于 2020-6-7 19:03 编辑

int 是整型的意思括号里填 temp 是把temp 转为整型

因为temp 是接受 input 的返回值,input 的返回值类型是字符串 ,如果要判断大小要通过数值来判断,而不是字符串 所以这里填 int(temp)

如果是字符串比较大小,比较的是 ASCII 码值

qiuyouzhi 发表于 2020-6-7 19:01:54

int你得int个东西呀

WangJS 发表于 2020-6-7 19:10:26

你的意思是直接:
guess=int(input(‘不妨猜一下小甲鱼现在心里想的哪个数字’))
吧?这样可以啊,小甲鱼只是为了好理解才那样写的

顺便说一句,你那4个括号都是用的中文的,要注意:
python里所有符号都要用英文的!

郑放放 发表于 2020-6-8 11:30:46

这样子是不可以的,因为小甲鱼后面的答案是一个数字,所以需要用int对指定的字符串(也就是这里的temp)进行整形,如果后面要用户输入的不是数字的话,就可以不用int这个BIF,可以直接就if temp==就可以了,不用整形,但如果直接写int的话就无法给出明确的指令吧,系统就无法识别了(我是这么理解的,希望对你有帮助)

一抹心尘 发表于 2020-11-2 16:42:11

int 是取整意思 , 括号里填 temp 是把temp 转为整型,
因为temp 是接受 input 的返回值,input 的返回值类型是字符串 ,如果要判断大小要通过数值来判断,
而不是字符串 所以这里填 int(temp),
如果是字符串比较大小,比较的是 ASCII 码值
如果你不加呢?那问题就出来了,因为input输入的是字符串,比较的时候也是比较的各个字符的ASCII码,前一位比较出来后,后面的就不看了
转为int型就没问题了。
错误示范:
num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")

if num1 < num2:
    print("第一个数比第二个数小!")

if num1 > num2:
    print("第一个数比第二个数大!")

if num1 == num2:
    print("第一个数和第二个数一样大!")

错误结果:
请输入第一个整数:132
请输入第二个整数:1220
第一个数比第二个数大!

正确代码:
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

if num1 < num2:
    print("第一个数比第二个数小!")

if num1 > num2:
    print("第一个数比第二个数大!")

if num1 == num2:
    print("第一个数和第二个数一样大!")

正确结果:
请输入第一个整数:132
请输入第二个整数:1220
第一个数比第二个数小!

这样讲,应该比较详细了。
页: [1]
查看完整版本: 新入门python的小白一个小问题