📜  仅输入正数 (1)

📅  最后修改于: 2023-12-03 14:49:16.160000             🧑  作者: Mango

仅输入正数

在编写程序时,往往需要强制要求用户输入正数。这样可以避免负数或零导致的程序异常或错误的结果。本文将介绍几种方法来实现仅输入正数的需求。

1. 使用循环直到输入为正数
while True:
    num = input("请输入正数:")
    if num.isdigit() and int(num) > 0:
        break
print("输入的正数为:", num)

该方法使用 while 循环不断询问用户输入,直到输入的是正数为止。其中 isdigit() 函数用于判断输入是否为数字,int() 函数用于将字符串转换为整数类型。

2. 使用正则表达式校验输入
import re

while True:
    num = input("请输入正数:")
    if re.match("^[1-9]\d*$", num):
        break
print("输入的正数为:", num)

该方法使用正则表达式来判断输入是否为正数。正则表达式 ^[1-9]\d*$ 表示以1~9(不包括0)开头,后面跟0个或多个数字的字符串。

3. 使用异常处理
while True:
    try:
        num = int(input("请输入正数:"))
        if num > 0:
            break
    except ValueError:
        pass
print("输入的正数为:", num)

该方法使用异常处理来捕获用户输入非数字的情况。如果输入的是非数字,int() 函数将抛出 ValueError 异常,使用 pass 语句忽略该异常,继续循环询问用户输入。如果输入的是数字但不是正数,则 if 语句不成立,继续循环询问用户输入。

以上三种方法均可以实现仅输入正数的需求,具体使用哪种方法取决于实际情况和个人喜好。