python 标志法-优化版(数值判断[正负])、非空判断、退出判断)

liftword5个月前 (01-22)技术文章43

在这个程序中,我们使用了一个标志来指出程序是否处于活动状态,这样如果要添加测试(如elif 语句)以检查是否发生了其他导致quit_msg2变为False 的事件,将很容易。

在复杂的程序中,如很多事件都会导致程序停止运行的游戏中,标志很有用:在其中的任何一个事件导致活动标志变成False 时,主游戏循环将退出,此时可显示一条游戏结束消息,并让用户选择是否要重新玩。

# 标志退出法  将退出程序的条件交给其他语句
def print_input_test():
    quit_msg2 = True    # 退出标志,True:运行;False:退出
    while quit_msg2:
        quit_msg2 = input("请输入一个数字:(输入quit退出程序)\n")
        # 输入不为空
        if quit_msg2.strip() != '':
            # 输入为quit,直接退出程序
            if quit_msg2.strip() == 'quit':
                quit_msg2 = False   # 退出程序
            # 输入不为quit,调用函数判断输入是否为数字
            elif isInt(quit_msg2):
                # 输入为数字,判断是否为3的整数倍,并打印出结果
                if int(quit_msg2) % 3 == 0:
                    print(quit_msg2, "是3的整数倍")
                else:
                    print(quit_msg2, "不是3的整数倍")
            # 输入不为数字,提示重新输入
            else:
                print("你输入的不是数字,请重新输入!\n")
        else:
            # 如果输入为空,继续循环
            quit_msg2 = True

# 判断一个值 是否是数字(包含正负)
# 思考为何不用isnumeric() 、isdigit() 判断输入值
def isInt(number):
    try:
        number=int(str(number)) # 转换为int类型
        return isinstance(number,int)   #判断是否为int类型,如果是,返回True
    except:
        return False    # 非Int类型,返回False


if __name__ == '__main__':
    print_input_test()

相关文章

用python编写判断输入是否为整数的程序

最近在自学python,写了两个小程序,大家帮个看看有没有更好的方式来编写,没学过编程,学起来有点懵。想实现一个功能,就是判断外部输入是否为整数,就是判断是不是数字,要是输入的其他的返回“您输入的信息...

python编程实践:如何将变量正确设置为空?

在Python中,变量是非常重要的一部分。它们用于储存数据,来支持程序的运行。当我们在编程时,将来可能会遇到一个问题:如何将变量正确设置为空?什么是变量?在Python中,变量是程序员用来储存数据的一...

Python range():表示某个范围内的数值

range函数作用Python 中的range是表示整数区间的对象,通常用for循环访问。range函数t转的对象可以转换为列表for i in range(5)是一个循环,它遍历从 0 到 4(包括...

django rest框架之Django-ninja(django框架mvt)

django web框架,它是一个入门有门槛,学会了做项目非常方便的Web框架。《2020 Python 开发者调查结果》https://www.jetbrains.com/zh-cn/lp/pyth...

春节回家!车位难求啊!看我用Python自动寻找空车位!

作者通过相机结合深度学习算法,基于 Python 语言建立一个高精度的停车位的通知系统,每当有新停车位时就会发短信提醒我。听起来好像很复杂,真的方便实用吗?但实际上所使用的工具都是现成的,只要将这些工...