鱼C论坛

 找回密码
 立即注册
查看: 1488|回复: 2

[已解决]020讲求助小细节求助。

[复制链接]
发表于 2022-4-29 16:27:38 | 显示全部楼层 |阅读模式

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

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

x
以下代码是020关于判断 各种括号是否合法的部分代码。

s = []
for i in range(6):
   
    temp = input('请输入测试字符串:')
    if temp not in ['(', ')', '{', '}', '[', ']']:
        print('请不要输入括号意外的字符')
        continue
    else:
        s.append(temp)

现在遇到的问题是这样子的。
这是一个需要循环6次的循环。 我希望获取的内容是“(){}[]” 这六个括号。 用这个代码的话, 假如我其中一次输入的不是括号, 是其他的东西的话, 它接下去会再循环5次就结束了。
怎么改才能让他的循环不算上出错的那一次, 接着把6个括号给输入完?


最佳答案
2022-4-29 17:05:21


可以套个  while 循环,将 if 中的 continue 删除,在 else 中添加 break,参考代码:

  1. s = []
  2. for i in range(6):
  3.     while 1:
  4.         temp = input('请输入测试字符串:')
  5.         if temp not in ['(', ')', '{', '}', '[', ']']:
  6.             print('请不要输入括号意外的字符')
  7.         else:
  8.             s.append(temp)
  9.             break
复制代码


或者直接用 while 循环,外部用一个 count 记录执行次数,若不符合条件则 count 不增加,反之 +1

  1. s = []
  2. count = 0
  3. while count < 6:
  4.     temp = input('请输入测试字符串:')
  5.     if temp not in ['(', ')', '{', '}', '[', ']']:
  6.         print('请不要输入括号意外的字符')
  7.     else:
  8.         s.append(temp)
  9.         count += 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-29 17:05:21 | 显示全部楼层    本楼为最佳答案   


可以套个  while 循环,将 if 中的 continue 删除,在 else 中添加 break,参考代码:

  1. s = []
  2. for i in range(6):
  3.     while 1:
  4.         temp = input('请输入测试字符串:')
  5.         if temp not in ['(', ')', '{', '}', '[', ']']:
  6.             print('请不要输入括号意外的字符')
  7.         else:
  8.             s.append(temp)
  9.             break
复制代码


或者直接用 while 循环,外部用一个 count 记录执行次数,若不符合条件则 count 不增加,反之 +1

  1. s = []
  2. count = 0
  3. while count < 6:
  4.     temp = input('请输入测试字符串:')
  5.     if temp not in ['(', ')', '{', '}', '[', ']']:
  6.         print('请不要输入括号意外的字符')
  7.     else:
  8.         s.append(temp)
  9.         count += 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-29 20:06:12 | 显示全部楼层
Twilight6 发表于 2022-4-29 17:05
可以套个  while 循环,将 if 中的 continue 删除,在 else 中添加 break,参考代码:

Genius! 瑞思拜!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 05:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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