丹丹崽 发表于 2020-5-16 11:26:07

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

今天学习了p10循环语句,

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

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

请教一下~ 这样的话还能使用循环语句吗?还是必须得用其他语法函数惹 (☆▽☆)

Twilight6 发表于 2020-5-16 11:27:09

可以呀,只是要添加些语法~

liuzhengyuan 发表于 2020-5-16 11:30:58

可以,再加上 随机数 random

焦健鬼 发表于 2020-5-16 11:56:15

可以

焦健鬼 发表于 2020-5-16 11:56:55

把代码发出来,我帮你改

Twilight6 发表于 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)
else:
    print('很可惜哦~ 你还不够了解丹丹呢!')

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


这样就好啦~~~{:10_287:}

焦健鬼 发表于 2020-5-16 11:59:17

Twilight6 发表于 2020-5-16 11:58
这样就好啦~~~

不对,他想要的不是这个,是有序的

Twilight6 发表于 2020-5-16 12:02:22

焦健鬼 发表于 2020-5-16 11:59
不对,他想要的不是这个,是有序的

好了~

焦健鬼 发表于 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列表里的提示语~~

永恒的蓝色梦想 发表于 2020-5-16 12:49:02

比较短from itertools import cycle
for prompt in cycle('丹丹最喜欢听的情话是:','抱歉哦,猜错啦~ 再试试看:','不对不对~ 再来一次:','这句也喜欢,但不是最喜欢喔,再来一次啦~:','再猜不对就红牌警告!:'):
    if input(prompt)=='你好漂亮':
      print('哎哟,这么快就猜对啦\n您可真懂我呢~~o')
      break

永恒的蓝色梦想 发表于 2020-5-16 12:50:24

焦健鬼 发表于 2020-5-16 11:59
不对,他想要的不是这个,是有序的

他根本就没说明白要求

焦健鬼 发表于 2020-5-16 12:53:34

永恒的蓝色梦想 发表于 2020-5-16 12:50
他根本就没说明白要求

说了

永恒的蓝色梦想 发表于 2020-5-16 12:54:04

焦健鬼 发表于 2020-5-16 12:53
说了

在哪?

焦健鬼 发表于 2020-5-16 12:55:25

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


在这

丹丹崽 发表于 2020-5-16 19:50:01

永恒的蓝色梦想 发表于 2020-5-16 12:49
比较短

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

TypeError: cycle expected 1 argument, got 5

(这意思是说“剪不断理还乱 本python不陪玩了”吗?)

焦健鬼 发表于 2020-5-16 19:51:33

为什么我能成功{:10_245:}

永恒的蓝色梦想 发表于 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
页: [1]
查看完整版本: 循环语句:每次循环报错都是同一句话,好无聊哦!