Python编写韩语数字转换器如何实现1-10外输入的重试提示逻辑?
韩语数字转换器输入校验实现方案
你可以通过「无限循环+合法性校验」的逻辑实现异常输入重试的效果,同时可以额外兼容非整数输入的报错场景,修改后的完整代码如下:
# 先定义转换字典,无需重复创建 koreanConversion = { 1: "Hana", 2: "Tul", 3: "Set", 4: "Net", 5: "Ta Sut", 6: "Yuh Sut", 7: "Il Jop", 8: "Yu Dulb", 9: "Ah Hop", 10: "Yul" } print("Welcome to the Korean Converter!") while True: # 先捕获输入转整数的异常,避免非数字输入导致程序崩溃 try: user_input = int(input("Enter a number between 1 and 10: ")) except ValueError: print("输入不合法,请输入整数!") continue # 判断数字是否在转换字典的键范围内 if user_input in koreanConversion: print(koreanConversion[user_input]) # 合法输入输出结果后跳出循环 break else: print("请输入1-10之间的数字,请重试!")
关键逻辑说明:
- 用
while True开启无限循环,只有用户输入合法内容、执行到break语句时才会结束循环 - 加入
try-except捕获非整数输入的异常,避免用户输入字母、符号等内容时程序直接报错退出 - 用
in关键字直接判断输入的整数是否是转换字典的key,不需要额外写范围判断,后续如果要扩大转换数字范围,只需要修改字典内容即可,不需要改动校验逻辑
简化版实现(无需处理非整数输入场景)
如果你的使用场景可以保证用户只会输入整数,也可以用更简单的写法:
koreanConversion = { 1: "Hana", 2: "Tul", 3: "Set", 4: "Net", 5: "Ta Sut", 6: "Yuh Sut", 7: "Il Jop", 8: "Yu Dulb", 9: "Ah Hop", 10: "Yul" } print("Welcome to the Korean Converter!") user = int(input("Enter a number between 1 and 10: ")) while user not in koreanConversion: user = int(input("请输入1-10之间的数字,请重试:")) print(koreanConversion[user])
内容的提问来源于stack exchange,提问作者Ceceeeee
相关产品推荐
相关产品推荐

