行人路过 发表于 2017-2-5 21:48:24

新人第二天学python,关于循环次数的问题

import random
h=random.randint(1,10)
temp=input("不妨猜一下小甲鱼现在心里想的数字:")
guess=int(temp)
i=0
while guess!=h and i<2:
      if guess>h:
            print("哥们,大了,大了")
      else:
                print("小了,小了")
      i+=1
      temp=input("请重新输入:")
      guess=int(temp)
if guess==h:
      print("你是小甲鱼肚里的蛔虫吗?")
      print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))
else:
      print("太没有默契了,猜了这么久也没猜对")
print("游戏结束!!!")


这里“i”到底是什么??
还有就是i+=1到底是什么意思??
谢谢各位的帮助

冬雪雪冬 发表于 2017-2-5 22:09:44

i是计数器,初始i为0,每次循环加一,这是为了设定循环的次数。
i += 1是i = i + 1的意思,即自加

lubcat 发表于 2017-2-7 22:04:32

i用来记录循环次数,
所以 这个,只循环一次??

五行缺五行 发表于 2017-2-8 08:22:03

i表示循环次数,i+=1相当于i=i+1

tianalng233 发表于 2017-2-13 09:54:35

lubcat 发表于 2017-2-7 22:04
i用来记录循环次数,
所以 这个,只循环一次??

不是啊.
首先假设一直没有猜对,那么第一个条件: guess != h 就一直为True.
然后再来考虑第二个条件:i < 2.
第一次 i = 0,条件成立,执行while中的语句, i = i+ 1,现在i = 1
第二次 i = 1,条件成立,执行while中的语句, i = i + 1, 现在 i = 2
第三次,由于 i = 2, 条件不成立,所以跳出循环,
所以一共只有2次,也就是 0 和 1 的那两次.
while 循环是先判断条件,如果条件成立,表达式为True,那就执行.不成立,表达式为False,那就退出循环

lubcat 发表于 2017-2-13 20:34:53

tianalng233 发表于 2017-2-13 09:54
不是啊.
首先假设一直没有猜对,那么第一个条件: guess != h 就一直为True.
然后再来考虑第二个条件:i < ...

哦哦哦。是我没看清楚。
这样就限制了猜的次数,不会导致无限猜下去。
没毛病的。
页: [1]
查看完整版本: 新人第二天学python,关于循环次数的问题