python利用异常语句与fot循环逆序打印五位数字,若不符合要求能主动抛出异常提示并提示用户重输
定义异常类,使用try-catch获取用户输入,然后for循环逆序打印数字即可。
代码如下:
参考链接:
# https://blog.csdn.net/lwgkzl/article/details/81059433
# https://www.cnblogs.com/hiwuchong/p/8573081.html
# https://www.zadmei.com/zpzcjzdy.html
class InputError(ValueError):# 定义异常类
pass
def checkNum(num): # 检测字符串数字是否是一个五位数的函数
num=int(num) #字符串转为int类型
if num<=9999 or num>=100000: # 如果数字不是五位数,则抛自定义异常
raise InputError('数值%s不是一个五位数!' % num)
num = input("请输入一个五位数:") # 从输入获取一个数字字符串
while True: # 循环测试,直到获取到五位数,然后逆序打印后break退出循环
try: # 使用try-except-else 块来完成 数据的检测和逆序打印
checkNum(num)
except Exception as e: # 如果 抛了异常,则重新获取输入
print('Error:',e)
num = input("请输入一个五位数:")
else: # 如果没抛异常,则逆序打印这个五位数
# https://www.fengnayun.com/news/content/147196.html
# https://blog.csdn.net/wukai0909/article/details/125032036
n = list(map(int,num))
n.reverse()
for i in n:
print(i,end='')
break
该回答引用chatgpt:
while True:
try:
num = input("请输入一个五位数字:")
num_int = int(num)
if num_int < 10000 or num_int > 99999:
raise ValueError("输入不是五位数字!")
break
except ValueError as e:
print("错误:", e)
for i in range(4, -1, -1):
print(num[i], end="")
print()
代码解释:
首先进入一个无限循环,直到用户输入符合要求的五位数字为止。在循环中,首先使用 input() 函数获取用户输入,然后使用 int() 函数将输入转换为整数。如果转换后的整数不是一个五位数,则使用 raise 语句主动抛出一个 ValueError 异常,异常的信息是 "输入不是五位数字!"。如果用户输入符合要求,则跳出循环。
接下来使用 for 循环逆序打印数字。循环从 4 到 0,每次迭代减少 1,使用 print() 函数打印数字的倒数第 i 位,其中 end="" 参数表示不换行。
注意,本例中并没有对用户输入的数字进行重复性检查。如果需要避免重复的数字,可以使用一个列表保存已经输入过的数字,然后在输入时检查是否已经存在于列表中。
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
以下是一个示例代码,可以实现您的需求:
while True:
try:
num = input("请输入一个五位数字:")
num = int(num)
if num < 10000 or num > 99999:
raise ValueError("输入的数字不是五位数字")
break
except ValueError as e:
print("输入错误:", e)
for i in range(4, -1, -1):
digit = num // (10 ** i) % 10
print(digit, end="")
在上面的代码中,首先使用一个 while
循环不断输入数字,直到用户输入一个符合要求的五位数字为止。如果用户输入的不是五位数字,则会抛出一个 ValueError
异常,并输出错误信息。
之后使用一个 for
循环逆序遍历数字的每一位,并打印出来。例如,对于数字 12345
,循环遍历的结果为 4, 3, 2, 1, 0
,分别表示数字的万位、千位、百位、十位和个位。
需要注意的是,上面的代码只是一个示例,可能需要根据实际情况进行修改和扩展。例如,可以添加更多的异常类型和错误提示,以实现更完整的应用程序。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
不知道你这个问题是否已经解决, 如果还没有解决的话:我能够解决该问题。
代码示例:
while True:
try:
num = int(input("请输入一个五位数字:"))
if 10000 <= num <= 99999:
# 将数字转换成字符串并倒序排列
num_str = str(num)[::-1]
# 遍历每个字符并输出
for i in num_str:
print(i)
break
else:
# 抛出异常并提示用户重新输入
raise ValueError
except ValueError:
print("输入不符合要求,请重新输入!")
代码解释: