新人求助
print('-----------ssss-----------')import random
times=3
secret=random.randint(1,10)
temp=input('请问小甲鱼想的是哪个数字:',end'')
guess=int(temp)
guess=0
while (guess != secret)and(times>0)
times=times-1
if guess>secret:
print('大了大了')
else:
print('小了小了')
if times>0:
print('再猜一次吧:',end'')
if guess==secret:
print('小蛔虫')
print('游戏结束')
为何不能运行? huangdongdong 发表于 2021-2-7 11:05
print('------------sss-----------')
import random
secret=random.randint(1,10)
可以可以
自己多多理解一下,要是没有其他问题,请给我一个最佳谢谢,码字不易 本帖最后由 Twilight6 于 2021-2-6 16:38 编辑
input 函数没有 end 参数,而且给 end 参数赋值要带上 = 号
guess 被赋值为 int(temp) 时你又在之后重新将 guess 赋值为 0 导致前面代码无用功,应该把 guess = 0 删去
while 循环条件填写完毕后,要加上冒号,print 函数的 end 参数你也忘记加上 = 等号了
帮你粗略改了下代码,参考下吧:
print('-----------ssss-----------')
import random
times=3
secret=random.randint(1,10)
guess = 0
print('请问小甲鱼想的是哪个数字:',end='')
while (guess != secret) and (times>0):
temp=input()
guess=int(temp)
if guess>secret:
times = times-1
print('大了大了')
else:
times = times - 1
print('小了小了')
if times > 0:
print('再猜一次吧:',end = '')
if guess==secret:
print('小蛔虫')
print('游戏结束')
else里包括等于了 帮你改了下
print('-----------ssss-----------')
import random
times=3
secret=random.randint(1,10)
while times:
temp = input('请问小甲鱼想的是哪个数字:')
guess = int(temp)
if guess>secret:
print('大了大了')
print('再猜一次吧:', end='')
elif guess<secret:
print('小了小了')
print('再猜一次吧:', end='')
else:
print('小蛔虫')
print('游戏结束')
break
times -= 1 本帖最后由 Bailey_Kung 于 2021-2-6 16:54 编辑
1、第5行:input()函数调用格式错误,不需要第二个参数
修正后:temp=input('请问小甲鱼想的是哪个数字:')
2、第8行:while语句没加冒号
3、第15行:print() 语句中第二个参数为 end=' '
Bailey_Kung 发表于 2021-2-6 16:50
1、第5行:input()函数调用格式错误,不需要第二个参数
修正后:temp=input('请问小甲鱼想的是哪个数 ...
print('-------------sss--------------')
import random
times=3
secret=random.randint(1,10)
temp=input('请问小甲鱼想的是那个数字:')
guess=int(temp)
while (guess!=secret)and(times>0):
times=times-1
if guess>secret:
print('大了大了')
else:
print('小了小了')
if times>0:
print('请再输入一次:',end='')
if guess==secret:
print('小蛔虫')
print('游戏结束')
运行后是这样:
-------------sss--------------
请问小甲鱼想的是那个数字:4
小了小了
请再输入一次:小了小了
请再输入一次:小了小了
游戏结束
这该如何改? print('-------------sss--------------')
import random
times=3
guess=0
secret=random.randint(1,10)
temp=input('请问小甲鱼想的是那个数字:')
while (guess!=secret)and(times>0):
times=times-1
if guess==secret:
print('小蛔虫')
else:
if guess>secret:
print('大了大了')
else:
print('小了小了')
if times>0:
print('在输入一次:',end='')
else:
print('机会用光了')
times=times-1
print('游戏结束')
怎么改?
huangdongdong 发表于 2021-2-6 20:58
print('-------------sss--------------')
import random
times=3
楼主先对照一下看看下面的代码和您的有什么区别
print('-------------sss--------------')
import random
times=3
secret=random.randint(1,10)
while times>0:
temp = int(input('请问小甲鱼想的是那个数字:'))
times=times-1
if temp==secret:
print('小蛔虫')
break
else:
if temp>secret:
print('大了大了')
else:
print('小了小了')
if times == 0:
print('机会用光了')
print('游戏结束')
如果楼主看完了,请仔细思考一下
从上到下来看,guess 是什么?你有没有发现 guess 从一开始定义,就从未发生过变化,永远是 0,所以用户永远不可能猜对
盲猜您是打算获取用户的猜测值,那么就可以用 secret 直接代替 temp,用 secret 接收用户输入
然后获取用户输入以后,不知道楼主有没有发现,您值获取了一次,input 在 while 的外面,那么用户输入就永远是最开始键入的那个值
并且,input 不论你输入的是什么,最后都是 str 类型,而并非楼主所期望的 int 类型,所以此处需要将用户输入强制转换成 int 类型
将 input 直接放在 while 内部能够解决问题,多次获取用户输入
您也可以放一个 input 在while 之前,while 末尾再 input 获取一次用户输入,但是这样挺麻烦的
楼主仔细观察就能发现,while 的条件似乎有点问题
当 temp != secret and times > 0 的时候才会执行 while
times > 0 固然没错,但是 temp != secret 这个一旦加上去的话,那么小蛔虫这句话就不会被打印了,即使猜对了,因为此时 temp == secret 不满足 while 循环条件
当 temp == secret 时,打印小蛔虫,然后 break 语句跳出 while 循环,即终止 while 循环
每次用户输入完成后, times 自动减少一次,当机会为 0 直接打印机会用光了,只有当 secret > 或 < temp 时才需要在意 times 用光了,而猜对时直接退出 while 循环了,并不需要管是否用光机会
请注意,times 减少一定要在判断 times 次数是否为 0 之前,否则可能会出现次数并非为代码指定的 3 次的问题 Daniel_Zhang 发表于 2021-2-7 00:08
楼主先对照一下看看下面的代码和您的有什么区别
print('------------sss-----------')
import random
secret=random.randint(1,10)
times=3
temp=input('请输入数字:')
guess=int(temp)
while (guess != secret)and (times>0):
times=times-1
if guess>secret:
print('大颗大颗')
else:
print('小了小了')
if times>0:
temp=input('请输入数字:')
guess=int(temp)
else:
print('么了')
break
if guess==secret:
print('蛔虫')
print('游戏结束')
结果可以了,不知还要不要改
页:
[1]