关于0基础学python系列第四课的一些拓展问题
本帖最后由 qiuyouzhi 于 2020-4-28 14:11 编辑200%编程菜鸟一支,求指导,直接上源程序:
import random
secret=random.randint(1,10)
print("**********小甲鱼的作业*************")
temp=input("你猜猜我心里想的1~10中的哪个数字:")
guess = int (temp)
if guess > secret:
print("大了,猜大了"+"\n")
elif guess< secret:
print("小了,猜小了"+"\n")
while guess != secret:
temp =input ("你再猜一次:")
guess = int (temp)
if guess > secret:
print("大了,猜大了"+"\n")
elif guess< secret:
print("小了,猜小了"+"\n")
if guess == secret:
print ("猜对了,你真是我肚里的蛔虫啊!")
print ("猜中也没什么奖励了")
print("游戏结束,不玩啦^_^")
这是第四课的内容,但是做两个功能扩展时有问题,请高手指导:
1. 限定猜错的次数,比如最多错3次就不能猜了。
2. 如何判断输入值,比如说,不小心输入了个w,那么程序需要提示说请输入1~10的数字。使程序有更好的容错能力。这个能力不但在第一次输入时有,在后边重复输入时也要有。
请不吝赐教!
本帖最后由 qiuyouzhi 于 2020-4-28 14:13 编辑
1,写个while循环,再设置一个times,设为你要循环的次数,然后while times,再在答错的地方设置一个times -= 1.
2,不知道你学没学字符串方法,可以这样:
while not temp.isdigit():
temp = input("输入错误,请重试:")
把这个放在temp = input()的后面,guess = int(temp)的前面。 帮你修改了一下。
你应该还没有学到异常处理,现在用字符串的函数处理输入错误的情况。
后面学到了异常处理就有其他方法了
import random
secret=random.randint(1,10)
print("**********小甲鱼的作业*************")
promt="你猜猜我心里想的1~10中的哪个数字:"
i=3
while i:
temp =input (promt)
i-=1
promt="还有%d次机会,你再猜一次:"%i
while(not temp.isnumeric()):
temp=input("输入错误,请输入一个整数!")
guess = int (temp)
if guess > secret:
print("大了,猜大了")
elif guess< secret:
print("小了,猜小了")
if guess == secret:
print ("猜对了,你真是我肚里的蛔虫啊!")
print ("猜中也没什么奖励了")
break
else:
print("你的机会用光了!")
print("游戏结束,不玩啦^_^") qiuyouzhi 发表于 2020-4-28 14:11
1,写个while循环,再设置一个times,设为你要循环的次数,然后while times,再在答错的地方设置一个times...
高人,那个while语句进去有bug:
1. 如果再重猜的过程中,再输入w 就会报错。但是一开始输入错,可以有效的防错。
2, 你们是怎么做到的,再回复里边是那种可以复制的代码形式。 笨虫学爬虫 发表于 2020-4-28 14:33
高人,那个while语句进去有bug:
1. 如果再重猜的过程中,再输入w 就会报错。但是一开始输入错,可以有 ...
1.那你就把那个判断写到判断次数里面去
2,回复那里有一个<>,看到了吗
把代码粘贴进去 qiuyouzhi 发表于 2020-4-28 14:35
1.那你就把那个判断写到判断次数里面去
2,回复那里有一个,看到了吗
把代码粘贴进去
好的,我再比较下,感谢你的指导。 本帖最后由 junneverlose 于 2020-4-28 17:20 编辑
同样零基础的同学,查阅了百度,自己捣鼓了下,分2部分实现了功能,但是觉得还可以更加简化
print()是为了实现 input()函数后不能空行的问题
最后的input()实现程序运行完后不会立即闪退的问题
还请指教
print('---------------无聊的小游戏-----------------')
import random #导入random模块
secret = random.randint(1,10) #Random模块中随机整数,取值1到10
times = 2
temp = input("猜猜我心里想的数字1到10哦:")
print()
guess = int(temp)
if guess == secret:
print("答对啦!真聪明!\n")
else:
if guess > secret:
print("大了大了\n")
else:
print("小了小了\n")
print("还有",times,"次机会\n")
while (guess !=secret) and (times > 0):
temp = input("再给你一次机会哦:")
print()
guess = int(temp)
if guess == secret:
print("答对啦!答对啦!真聪明!\n")
else:
if guess > secret:
print("大了大了\n")
else:
print("小了小了\n")
times = times - 1
if times == 0:
print('你的机会用完啦!\n')
print("游戏结束\n")
input("按任意键退出...")
junneverlose 发表于 2020-4-28 17:09
同样零基础的同学,查阅了百度,自己捣鼓了下,分2部分实现了功能,但是觉得还可以更加简化
print()是为 ...
那你很厉害了,你这个能实现限制次数,但是错误的数据类型不能防止,你看看我推荐的那个答案。那哥们做的很好。你times=times-1 ,实际就是他那个i -=1, 而且还可以提示你还能答几次。 sunrise085 发表于 2020-4-28 14:27
帮你修改了一下。
你应该还没有学到异常处理,现在用字符串的函数处理输入错误的情况。
后面学到了异常处 ...
你好,前段时间你解决了我的一个问题,现在有一些进一步的问题,还请你指导。谢谢!
程序如下,现在出现的问题是,我想让程序判断输入的数字,如果输入的数大于10,提示让重新输入。但是我写的程序有一个问题:如果先输入大于10的数,然后再输入了字符等非数字信息,程序会报错。请帮忙看看如何解决。非常感谢。
import random
secret=random.randint(1,10)
print("**********小甲鱼的作业*************")
i=3
prompt ="你猜猜小甲鱼心里想的1~10中的哪个数字,你有%d次机会:"%i
while i:
temp =input (prompt)
i-=1
prompt="还有%d次机会,你再猜一次:"%i
while(not temp.isnumeric()):
temp=input("输入错误,请输入一个1~10的数字!")
while(int(temp) > 10):
temp=input("输入错误,请输入一个1~10的数字!")
guess = int (temp)
if guess > secret:
print("大了,猜大了")
elif guess< secret:
print("小了,猜小了")
if guess == secret:
print ("猜对了,你真是小甲鱼肚里的蛔虫啊!")
print ("猜中也没什么奖励了")
break
else:
print("你的机会用光了!")
print("游戏结束,不玩啦^_^") 笨虫学爬虫 发表于 2020-5-7 11:35
你好,前段时间你解决了我的一个问题,现在有一些进一步的问题,还请你指导。谢谢!
程序如下,现在出现 ...
请重新开一个帖子吧。我也是需要最佳答案的数量的。
而且重新开贴,集思广益,或许你能得到更好的答案呢 {:5_101:}
页:
[1]