Python 使用输入和while循环输入4位数字

Python 使用输入和while循环输入4位数字,python,regex,while-loop,Python,Regex,While Loop,有人能查我的密码吗 问题是要求用户使用输入和while循环输入4位数字。循环应该一直运行,直到用户输入q。如果发生错误,请确保用户从未看到回溯。以下是一个示例输出: 请输入四位数字。 输入“q”退出。输入四位数字:3210 输入四位数:3333输入四位数:332对不起,您输入了3 数字。输入四位数字:32AB请仅输入数值。 输入四位数字:q尝试以下操作 import re prompt = "Enter four digits (or 'q' to quit):" whi

有人能查我的密码吗

问题是要求用户使用输入和while循环输入4位数字。循环应该一直运行,直到用户输入q。如果发生错误,请确保用户从未看到回溯。以下是一个示例输出:

请输入四位数字。 输入“q”退出。输入四位数字:3210 输入四位数:3333输入四位数:332对不起,您输入了3 数字。输入四位数字:32AB请仅输入数值。
输入四位数字:q尝试以下操作

import re

prompt = "Enter four digits (or 'q' to quit):"

while True:
    number = input(prompt)
    m = re.match(r"^(\d{4}|q)$", number)
    if not m:  # invalid input. unless exactly 4 digits or 'q' are entered, you'll end up here.
        # handle invalid input here if you must...e.g. len(number) > 4, number contains letters, etc
        # we just ignore it and ask again...
        continue
    if "q" == m.group(1):  # 'q' is a valid input, quit
        break
    else:  # valid input
        print(f"congratulations, you entered 4 digits: {m.group(1)}")
        break

我认为将数字除以数字,然后检查每个元素的长度和isinstance,int,这会更有意义,请参见,是的,我已经将regex标记为关键字。我认为您需要澄清一些问题。你的提示只表示输入的数值,但是你想允许字母字符吗?你说,我的代码会考虑4AB作为一个正确的答案,对吧?如果你不知道,你需要在发布之前完成程序测试。您要求我们为您测试代码,然后编写代码来修复任何问题。这是你的任务-尽你所能-在你发布之前。我不想允许字母字符
import re

prompt = "Enter four digits (or 'q' to quit):"

while True:
    number = input(prompt)
    m = re.match(r"^(\d{4}|q)$", number)
    if not m:  # invalid input. unless exactly 4 digits or 'q' are entered, you'll end up here.
        # handle invalid input here if you must...e.g. len(number) > 4, number contains letters, etc
        # we just ignore it and ask again...
        continue
    if "q" == m.group(1):  # 'q' is a valid input, quit
        break
    else:  # valid input
        print(f"congratulations, you entered 4 digits: {m.group(1)}")
        break