ElinaElizabeth 发表于 2020-6-21 22:58:59

能不能帮我看一下这段代码为啥不对

import random
guess=random.randint(1,10)
print('猜猜我心里想什么数字?')
temp=int(input())
time=2
while (temp!=guess)and (time>0):
   print('猜错了,再猜')
   print('答案是',guess)
   time-=1
   temp=input()
if temp==guess:
   print('太聪明啦')
   print('猜对也没有奖励')
print('答案是',guess)
print('游戏结束')

即使输入正确答案也显示“猜错了,再猜”

Twilight6 发表于 2020-6-21 23:12:36

本帖最后由 Twilight6 于 2020-6-21 23:19 编辑



循环里面的代码 忘记 int 转化为整型了,因为 input 返回的是字符串,而且字符串 '1' 和整型 1 是不可能相等的

还有 input 函数里面可以直接填字符串,不用 print 然后在 input 这样比较麻烦

import random

guess = random.randint(1,10)
temp = int(input('猜猜我心里想什么数字?'))
time = 2
while temp != guess and (time > 0):
    time -= 1
    temp = int(input('猜错了,再猜'))

if temp == guess:
    print('太聪明啦')
    print('猜对也没有奖励')
else:
    print('答案是', guess)
print('游戏结束!')

吕知远 发表于 2020-6-22 00:20:28

本帖最后由 吕知远 于 2020-6-22 00:27 编辑

import random
guess=random.randint(1,10)
print('猜猜我心里想的是什么数字?(1-10之间)')

time=2
while time<=2 and time>0:
        temp=int(input('请输入您猜测的数字吧:'))
        if temp==guess:
                print('太聪明了,您猜对了!')
                break
        else:
                print('猜错了!')
                time-=1
#如果第一次猜错了,只允许再猜一次.

Twilight6 发表于 2020-6-22 07:31:16

吕知远 发表于 2020-6-22 00:20
import random
guess=random.randint(1,10)
print('猜猜我心里想的是什么数字?(1-10之间)')


你的 while 循环 time <= 2 是多余的,可以去掉
然后将条件多一个判断 temp 是否等于 guess 的也可以去掉 break了:
import random
guess=random.randint(1,10)
temp = 0
time=2
print('猜猜我心里想的是什么数字?(1-10之间)')
while temp!=guess and time > 0:
      temp=int(input('请输入您猜测的数字吧:'))
      if temp==guess:
                print('太聪明了,您猜对了!')
      else:
                print('猜错了!')
                time-=1


页: [1]
查看完整版本: 能不能帮我看一下这段代码为啥不对