鱼C论坛

 找回密码
 立即注册
查看: 2673|回复: 10

[已解决]可能是关于range的一个小问题

[复制链接]
发表于 2017-10-26 20:46:09 | 显示全部楼层 |阅读模式

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

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

x
temp=input("不妨猜一下小甲鱼现在心里想的是哪个是数字:")
guess=int(temp)
while guess!=8:
    temp=input("哎呀猜错了 ,在猜一猜吧")
    guess=int(temp)
    for i in range(2):
        if guess==8:
            print("恭喜答对")
            break
        if guess>8:
            print("bigger")
            temp=int(temp)
        else:
            print("little")
            guess=int(temp)
        print('sorry, you do not have any chances')
    break
print("游戏结束")


我试图用for i in range()实现类似计数器的功能(ps:单纯无聊,不考虑实际价值),但在for循环if判断后面似乎只能执行print2次,而不能执行赋值,希望有朋友可以指点一下
最佳答案
2017-10-27 12:50:26
没太明白你的意思,你是希望让这个 for 循环多走几圈呢,还是说希望怎么的?
如果是让 for 循环多执行几次的话,那 range(x) 里的 x 可以把值写大点。如果是希望对变量 i 进行赋值,那就需要在 for 循环开始的时候进行处理,如:for i in [x, y, z] 这样的格式。如果需要持续递增,但是不希望从 0 开始,那就改下 range 函数的参数就行了,比如从 1 到 10,那就是 range(1, 11) 这样,看看这里的哪一条符合你的需要。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-26 22:21:34 | 显示全部楼层
你是想在for循环中对i赋值吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-26 22:31:51 | 显示全部楼层
在for循环的外面定义一个变量并赋值为0
每次循环结束将其自增即可
比如
count = 0
for i in range(5):
     #do somthing
     count += 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 11:48:54 | 显示全部楼层
刻意把程序搞复杂是本末倒置,用最简单直观的代码解决就成
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 12:50:26 | 显示全部楼层    本楼为最佳答案   
没太明白你的意思,你是希望让这个 for 循环多走几圈呢,还是说希望怎么的?
如果是让 for 循环多执行几次的话,那 range(x) 里的 x 可以把值写大点。如果是希望对变量 i 进行赋值,那就需要在 for 循环开始的时候进行处理,如:for i in [x, y, z] 这样的格式。如果需要持续递增,但是不希望从 0 开始,那就改下 range 函数的参数就行了,比如从 1 到 10,那就是 range(1, 11) 这样,看看这里的哪一条符合你的需要。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-29 13:38:25 | 显示全部楼层
冬雪雪冬 发表于 2017-10-26 22:21
你是想在for循环中对i赋值吗?

对,我试图在不外设计数器的情况下,在for里对guess重新赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-29 13:39:34 | 显示全部楼层
mass 发表于 2017-10-27 11:48
刻意把程序搞复杂是本末倒置,用最简单直观的代码解决就成

这个的确是,但学习中只是想更清楚的了解range的使用,实际操作当然不会这样来写
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-29 13:41:29 | 显示全部楼层
BngThea 发表于 2017-10-26 22:31
在for循环的外面定义一个变量并赋值为0
每次循环结束将其自增即可
比如

我知道外设计数器是常规做法,现在就是想搞懂range的使用可不可以不外设计数器,因为print是正常走的,但不知道为什么不可以重新赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-29 13:56:16 | 显示全部楼层
额,刚又看了下,发现居然是交互没写,简单搞了下就ok了,跟range没什么关系,,,
temp=input("不妨猜一下小甲鱼现在心里想的是哪个是数字:")
guess=int(temp)
while guess!=8:
    for i in range(2):
        if guess==8:
            print("恭喜答对")
            break
        if guess>8:
            print("bigger")
            temp=input("哎呀猜错了 ,在猜一猜吧")
            guess=int(temp)
        else:
            print("little")
            temp=input("哎呀猜错了 ,在猜一猜吧")
            guess=int(temp)
    print('you have no chances')
    break
print("游戏结束")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-29 13:57:23 | 显示全部楼层
辛苦各位了,还是谢谢大家🙏
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-29 18:42:21 | 显示全部楼层
brank 发表于 2017-10-29 13:38
对,我试图在不外设计数器的情况下,在for里对guess重新赋值

极其不建议这样做,下次循环时又按照in的内容重新给i赋值了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 11:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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