鱼C论坛

 找回密码
 立即注册
查看: 5720|回复: 13

[已解决]课后作业

[复制链接]
发表于 2017-3-4 17:00:04 | 显示全部楼层 |阅读模式
2鱼币
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 ('游戏结束')   
最佳答案
2017-3-4 17:00:05
input的输入是字符型,你可以具体上机用type 或 isinstance内置函数试一下

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

最佳答案

查看完整内容

input的输入是字符型,你可以具体上机用type 或 isinstance内置函数试一下 >>> temp=input('请输入一个数字:') 请输入一个数字:3 >>> print(temp) 3 >>> type(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-4 17:00:05 | 显示全部楼层    本楼为最佳答案   
input的输入是字符型,你可以具体上机用type 或 isinstance内置函数试一下

>>> temp=input('请输入一个数字:')
请输入一个数字:3
>>> print(temp)
3
>>> type(temp)
<class 'str'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-4 18:43:47 | 显示全部楼层
用print打印的时候会自动去掉‘’,而它实际上仍然是字符型的,所以后面需要int()进行强制类型转换。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-4 19:10:36 | 显示全部楼层
用input()得到的是一个字符型的值,此时temp就是字符型。

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

变量类型判定,请用type()函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-4 19:44:05 | 显示全部楼层
我觉得有两种可能性:
1.当用print()函数打印时会自动去掉''引号,但其实其数据类型仍未字符串,你可以直接输入temp试试看,结果是数字还是字符串。
2.你的Python版本可能是Python2,在Python2中input()函数返回值即为你输入的类型,然而在Python3中input()函数返回的数据皆为字符串类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-4 20:22:15 | 显示全部楼层
print()返回的值就是一个字符串嘛,不信你看:
C:\Users\Administrator\Pictures\Saved Pictures\捕获6.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-4 21:13:08 | 显示全部楼层
input() 默认接收到的是字符串类型,
至于print()结果,只是不打印''’而已。

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

你可以在交互界面验证下
temp = input('输入数字:')
type(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-4 22:27:14 | 显示全部楼层
input返回的是字符型,所以temp是字符型。通过input输入的是字符型,而字符型是无法与整形做比较的,所以需要将其转换为整形,才使用了int函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-5 14:17:54 | 显示全部楼层
它是字符型
>>> a=input()
10
>>> type(a)
<class 'str'>
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-5 14:59:44 | 显示全部楼层
这个应该是Python2和Python3之间的区别问题,在Python3中input函数返回所有数值的类型均为字符串类型,所以需要用int函数进行转换,而Python2中,用intput函数得到的值的类型要根据你输入的数值类型来判断,如果你输入的是字符串,得到的值的类型自然是字符串类型,如果是整形数字,得到的值自然是int类型,以此类推
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-5 16:43:31 | 显示全部楼层
thexiosi 发表于 2017-3-5 11:18
input的输入是字符型,你可以具体上机用type 或 isinstance内置函数试一下

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

谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-5 16:44:50 | 显示全部楼层
五行缺五行 发表于 2017-3-4 22:27
input返回的是字符型,所以temp是字符型。通过input输入的是字符型,而字符型是无法与整形做比较的,所以需 ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-5 19:54:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 21:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表