鱼C论坛

 找回密码
 立即注册
查看: 4453|回复: 25

新手上路,摸索着打了一段代码,可是出了问题,不知道错在哪。

[复制链接]
发表于 2015-12-2 16:42:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想弄出”你好,中国!“,就是不知道哪里出了问题。还有就是怎样才能这样:
>>>请输入你的名字:中国
>>>你好,中国!
就是我原本在最后面加的”print("结束")“不要它。
谢谢了!
XU4XQ`%NWT0W7_{3}HSKK{F.png
B5B[3VJA8__[LRFK198J769.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-2 16:47:36 | 显示全部楼层
字符串是不能变成整形数的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-2 17:00:10 | 显示全部楼层
你输入的是一个字符串,但是int()强制转换,所以报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-2 17:12:37 | 显示全部楼层
应该用  str() 是不是?  int 是表示整数的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-2 18:27:32 | 显示全部楼层
即便如此 发表于 2015-12-2 17:12
应该用  str() 是不是?  int 是表示整数的

把int改成了str。还是有问题。。。不过报错不再一样了。

print("-----------begin----------")
name = input("请输入你的名字:")
guess = str(name)
if guess ==中国:
    print("你好,中国!")
print("结束")


运行后:

-----------begin----------
请输入你的名字:中国
Traceback (most recent call last):
  File "F:\Python\你好!中国.py", line 4, in <module>
    if guess ==中国:
NameError: name '中国' is not defined
>>>


名为“中国”没有定义。。啥意识。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-2 23:39:57 | 显示全部楼层
print("-----------begin----------")
name = input("请输入你的名字:")
guess = str(name)
if guess =="中国":
    print("你好,中国!")
print("结束")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-3 09:02:41 | 显示全部楼层
中国用单引号或者双引号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-3 09:50:00 | 显示全部楼层
你在做是否相等判断的时候,要保证等号两边待判断的对象类型是一样的呀,guess是获取的从键盘输入的内容,其类型是字符串类型,所以“中国”也需要使用单引号或者双引号包括,保证其实字符串类型,否则python就会认为中国是一个变量,而你之前并没有对中国这个变量进行任何说明,所以会报NameError的错误

回答问题一定要完整,知其然也要知其所以然!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-3 10:43:47 | 显示全部楼层
类型不对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-3 15:53:04 | 显示全部楼层
字符串需要用引号括起来:
print("-----------begin----------")
name = input("请输入你的名字:")

if name == "中国":
    print("你好,中国!")
print("结束")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-3 20:50:30 | 显示全部楼层
John_farmer 发表于 2015-12-3 09:50
你在做是否相等判断的时候,要保证等号两边待判断的对象类型是一样的呀,guess是获取的从键盘输入的内容, ...

懂了,谢谢了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-5 23:11:02 | 显示全部楼层
xxxsw 发表于 2015-12-2 18:27
把int改成了str。还是有问题。。。不过报错不再一样了。

print("-----------begin----------")

是不是两边不对等  str对str  所以 guess==‘中国’?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-5 23:21:29 | 显示全部楼层
pythomdacuco 发表于 2015-12-5 23:11
是不是两边不对等  str对str  所以 guess==‘中国’?

嗯,确实。字符串要和字符串对应。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-6 21:58:38 | 显示全部楼层
加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-7 08:27:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-7 11:45:09 | 显示全部楼层
print('-----begin-----')
name = input('请输入你的国家:')
if name == '中国':
    print('你好,中国!')
print('结束')

这样就可以了,字符串是可以比较的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-7 13:47:21 | 显示全部楼层
应该是str(name),不能用int
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-7 23:52:15 | 显示全部楼层
count=2
while count<10:
    guess=raw_input("请输入你的名字: ")
    if guess=="中国":
        print("你好,中国!")
        break;
    else :
        print ("猜错了,请重新输入!")
    count+=1


运行效果:
>>>
请输入你的名字: wafhasjkdf
猜错了,请重新输入!
请输入你的名字: adfhajks
猜错了,请重新输入!
请输入你的名字: jshd
猜错了,请重新输入!
请输入你的名字: kajsd
猜错了,请重新输入!
请输入你的名字: 中国
你好,中国!


楼主的程序,对数据类型估计没搞清,建议看看数据类型的视频章节。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-8 08:52:45 | 显示全部楼层
xxxsw 发表于 2015-12-3 20:50
懂了,谢谢了。

客气客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-8 12:08:01 | 显示全部楼层
类型不匹配造成的错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 12:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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