鱼C论坛

 找回密码
 立即注册
查看: 2381|回复: 16

[已解决]循环语句:每次循环报错都是同一句话,好无聊哦!

[复制链接]
发表于 2020-5-16 11:26:07 | 显示全部楼层 |阅读模式

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

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

x
今天学习了p10循环语句,

自己现学现卖了一小段,shell显示如下:
丹丹最喜欢听的情话是:我喜欢你
抱歉哦,猜错啦~ 再试试看:我爱你
抱歉哦,猜错啦~ 再试试看:你真可爱
抱歉哦,猜错啦~ 再试试看:你最美丽
抱歉哦,猜错啦~ 再试试看:你好漂亮
哎哟,这么快就猜对啦
您可真懂我呢~~o


可是如果我想达到下面的效果:
丹丹最喜欢听的情话是:我喜欢你
抱歉哦,猜错啦~ 再试试看:我爱你
不对不对~ 再来一次:你真可爱
这句也喜欢,但不是最喜欢喔,再来一次啦~:你最美丽
再猜不对就红牌警告!:你好漂亮
哎哟,这么快就猜对啦
您可真懂我呢~~o


请教一下~ 这样的话还能使用循环语句吗?还是必须得用其他语法函数惹 (☆▽☆)
最佳答案
2020-5-16 11:58:15
本帖最后由 Twilight6 于 2020-5-16 12:03 编辑

有序:
error = ['抱歉哦,猜错啦~ 再试试看~','不对不对~ 再来一次~:','再猜不对就红牌警告~:']
ask = input('丹丹最喜欢听的情话是:')
for i in range(len(error)):
    if ask == '你好漂亮':
        print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
        break
    else:
        ask = input(error[i])
else:
    print('很可惜哦~ 你还不够了解丹丹呢!')

随机情况:
from random import choice   # 导入随机选择模块
error = ['抱歉哦,猜错啦~ 再试试看~','不对不对~ 再来一次~:','再猜不对就红牌警告~:','还是错啦~再猜猜看~:']
ask = input('丹丹最喜欢听的情话是:')
while True:
    if ask == '你好漂亮':
        print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
        break
    else:
        ask = input(choice(error))  # 随机选择error列表里的提示语~~


这样就好啦~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-16 11:27:09 | 显示全部楼层
可以呀,只是要添加些语法~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 11:30:58 | 显示全部楼层
可以,再加上 随机数 random
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 11:56:15 | 显示全部楼层
可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-16 11:56:55 | 显示全部楼层
把代码发出来,我帮你改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-16 11:58:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-5-16 12:03 编辑

有序:
error = ['抱歉哦,猜错啦~ 再试试看~','不对不对~ 再来一次~:','再猜不对就红牌警告~:']
ask = input('丹丹最喜欢听的情话是:')
for i in range(len(error)):
    if ask == '你好漂亮':
        print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
        break
    else:
        ask = input(error[i])
else:
    print('很可惜哦~ 你还不够了解丹丹呢!')

随机情况:
from random import choice   # 导入随机选择模块
error = ['抱歉哦,猜错啦~ 再试试看~','不对不对~ 再来一次~:','再猜不对就红牌警告~:','还是错啦~再猜猜看~:']
ask = input('丹丹最喜欢听的情话是:')
while True:
    if ask == '你好漂亮':
        print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
        break
    else:
        ask = input(choice(error))  # 随机选择error列表里的提示语~~


这样就好啦~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 11:59:17 | 显示全部楼层

不对,他想要的不是这个,是有序的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 12:02:22 | 显示全部楼层
焦健鬼 发表于 2020-5-16 11:59
不对,他想要的不是这个,是有序的

好了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 12:09:48 | 显示全部楼层
再帮你改改
from random import choice   # 导入随机选择模块
error = ['抱歉哦,猜错啦~ 再试试看~','不对不对~ 再来一次~:','再猜不对就红牌警告~:','还是错啦~再猜猜看~:']
ask = input('丹丹最喜欢听的情话是:')
while True:
    if ask == '你好漂亮':
        print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
        break
    elif ask == '':
        print('您输入的不是字符,请输入字符~~~')
        break
    else:
        ask = input(choice(error))  # 随机选择error列表里的提示语~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-16 12:49:02 | 显示全部楼层
比较短
from itertools import cycle
for prompt in cycle('丹丹最喜欢听的情话是:','抱歉哦,猜错啦~ 再试试看:','不对不对~ 再来一次:','这句也喜欢,但不是最喜欢喔,再来一次啦~:','再猜不对就红牌警告!:'):
    if input(prompt)=='你好漂亮':
        print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 12:50:24 | 显示全部楼层
焦健鬼 发表于 2020-5-16 11:59
不对,他想要的不是这个,是有序的

他根本就没说明白要求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 12:53:34 | 显示全部楼层

说了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 12:54:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 12:55:25 | 显示全部楼层
丹丹最喜欢听的情话是:我喜欢你
抱歉哦,猜错啦~ 再试试看:我爱你
不对不对~ 再来一次:你真可爱
这句也喜欢,但不是最喜欢喔,再来一次啦~:你最美丽
再猜不对就红牌警告!:你好漂亮
哎哟,这么快就猜对啦
您可真懂我呢~~o

在这
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 19:50:01 | 显示全部楼层

我试了一下你的这一串,回答错误的时候报错是木有问题了,但是回答对的时候反而报错了:

TypeError: cycle expected 1 argument, got 5

(这意思是说“剪不断理还乱 本python不陪玩了”吗?)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-16 19:51:33 | 显示全部楼层
为什么我能成功
测试.py - 无标题 (工作区) - Visual Studio Code 2020_5_16 19_50_43.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-16 19:52:05 | 显示全部楼层
丹丹崽 发表于 2020-5-16 19:50
我试了一下你的这一串,回答错误的时候报错是木有问题了,但是回答对的时候反而报错了:

TypeError: c ...

打错了,改成
from itertools import cycle
for prompt in cycle(('丹丹最喜欢听的情话是:','抱歉哦,猜错啦~ 再试试看:','不对不对~ 再来一次:','这句也喜欢,但不是最喜欢喔,再来一次啦~:','再猜不对就红牌警告!:')):
    if input(prompt)=='你好漂亮':
        print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 18:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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