sajforever 发表于 2017-3-4 17:00:04

课后作业

temp = input ('请输入一个数字:')
print (temp)
请问temp 是什么数字类型?我自己的答案以为是字符型,实践结果是个输入的那个数字即整形。令我困惑的是下面的程序中还用int()将temp 转换了一下,既然已经是整形为什么还要转换?
print('........数字游戏.......')
i = 3
import random
secret = random.randint (1,10)
while i:
    temp = input('请输入一个数字:')
    guess = int (temp)
    if guess == secret:
      print ('恭喜你答对了')
      break
    elif guess > secret :
      print ('大了大了')
    else:
      print ('小了小了')
    i -= 1
    print ('您还有',i,'次机会')
    if i ==0:
      print ('机会用完了')
print ('游戏结束')   

thexiosi 发表于 2017-3-4 17:00:05

input的输入是字符型,你可以具体上机用type 或 isinstance内置函数试一下

>>> temp=input('请输入一个数字:')
请输入一个数字:3
>>> print(temp)
3
>>> type(temp)
<class 'str'>

^ambition 发表于 2017-3-4 18:43:47

用print打印的时候会自动去掉‘’,而它实际上仍然是字符型的,所以后面需要int()进行强制类型转换。

编程新血 发表于 2017-3-4 19:10:36

用input()得到的是一个字符型的值,此时temp就是字符型。

print()显示的时候,字符型不加''。

变量类型判定,请用type()函数。

Shiryan 发表于 2017-3-4 19:44:05

我觉得有两种可能性:
1.当用print()函数打印时会自动去掉''引号,但其实其数据类型仍未字符串,你可以直接输入temp试试看,结果是数字还是字符串。
2.你的Python版本可能是Python2,在Python2中input()函数返回值即为你输入的类型,然而在Python3中input()函数返回的数据皆为字符串类型。

MSK 发表于 2017-3-4 20:22:15

print()返回的值就是一个字符串嘛,不信你看:
C:\Users\Administrator\Pictures\Saved Pictures\捕获6.PNG

lubcat 发表于 2017-3-4 21:13:08

input() 默认接收到的是字符串类型,
至于print()结果,只是不打印''’而已。

进行数值运算时必须要int()转换为整数类型

你可以在交互界面验证下
temp = input('输入数字:')
type(temp)

五行缺五行 发表于 2017-3-4 22:27:14

input返回的是字符型,所以temp是字符型。通过input输入的是字符型,而字符型是无法与整形做比较的,所以需要将其转换为整形,才使用了int函数

一曲悲歌笑红尘 发表于 2017-3-5 14:17:54

它是字符型
>>> a=input()
10
>>> type(a)
<class 'str'>
>>>

18813034116 发表于 2017-3-5 14:59:44

这个应该是Python2和Python3之间的区别问题,在Python3中input函数返回所有数值的类型均为字符串类型,所以需要用int函数进行转换,而Python2中,用intput函数得到的值的类型要根据你输入的数值类型来判断,如果你输入的是字符串,得到的值的类型自然是字符串类型,如果是整形数字,得到的值自然是int类型,以此类推

sajforever 发表于 2017-3-5 16:43:31

thexiosi 发表于 2017-3-5 11:18
input的输入是字符型,你可以具体上机用type 或 isinstance内置函数试一下

>>> temp=input('请输入一个 ...

谢谢你

sajforever 发表于 2017-3-5 16:44:01

18813034116 发表于 2017-3-5 14:59
这个应该是Python2和Python3之间的区别问题,在Python3中input函数返回所有数值的类型均为字符串类型,所以 ...

{:10_254:}

sajforever 发表于 2017-3-5 16:44:50

五行缺五行 发表于 2017-3-4 22:27
input返回的是字符型,所以temp是字符型。通过input输入的是字符型,而字符型是无法与整形做比较的,所以需 ...

{:7_113:}

thexiosi 发表于 2017-3-5 19:54:25

sajforever 发表于 2017-3-5 16:43
谢谢你

不客气{:5_109:}
页: [1]
查看完整版本: 课后作业