博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python | Python_条件判断
阅读量:5337 次
发布时间:2019-06-15

本文共 1795 字,大约阅读时间需要 5 分钟。

条件判断

  • 基本句式:
if 条件1:    print('第一个结果')else 条件2:    print('第二个结果')

更详细的判断,使用下面的写法:

if 
<条件判断1>
:
<执行1>
elif
<条件判断2>
:
<执行2>
elif
<条件判断3>
:
<执行3>
else:
<执行4>

要注意:不能忘记冒号:

  • 案例:
age = 20if age >= 6:    print('teenager')elif age >= 18:    print('adult')else:    print('kid')

执行结果是 : teenager

这是为什么呢?

原因如下:

1,if语句是按照从上到下进行判断的;
2,当判断到第一行时,age = 20 >6,
判断结果为TURE,所以直接执行了第一个print操作;
3,执行完后,会忽略后面的其他判断.

if判断条件还可以简写,比如写:

if x:    print('True')

只要 x 是非零数值、非空字符串、非空list等,就判断为 True,否则为 False。

再议 input

我们来看一个有问题的条件判断:

很多同学会用 input() 读取用户的输入,
这样可以自己输入,程序运行得更有意思:

birth = input('birth: ')    # input输入的是str字符串if birth < 2000:                print('00前')else:    print('00后')

输入1982,结果报错:

Traceback (most recent call last):  File "
", line 1, in
TypeError: unorderable types: str() > int() #str无法和数字进行大小比较

这是因为 input() 返回的数据类型是str

str不能直接和整数比较,必须先把str转换成整数。
Python提供了 int() 函数来完成这件事情:

s = input('birth: ')birth = int(s)          #先用int()函数将str转为数字if birth < 2000:    print('00前')else:    print('00后')

再次运行,就可以得到正确地结果。

但是,如果输入abc呢?又会得到一个错误信息:

Traceback (most recent call last):  File "
", line 1, in
ValueError: invalid literal for int() with base 10: 'abc'

原来int()函数发现一个字符串并不是合法的数字时就会报错,

程序就退出了。

如何检查并捕获程序运行期的错误呢?后面的错误和调试会讲到。

  • 练习:
    小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
    低于18.5:过轻
    18.5-25:正常
    25-28:过重
    28-32:肥胖
    高于32:严重肥胖
    用if-elif判断并打印结果:
#-*- coding: utf-8 -*-height = 1.75weight = 80.5print(height,'m'),print(weight,'kg')bmi = weight/(height*height)if bmi < 18.5:    print('过轻')elif bmi < 25:    print('正常')elif bmi < 28:    print('过重')elif bmi < 32:    print('肥胖')else:    print('严重肥胖')

最后的输出结果为:

1.75m
80.5kg
过重

转载于:https://www.cnblogs.com/jiahe434459789/p/10911373.html

你可能感兴趣的文章
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
eclipse-将同一个文件分屏显示
查看>>
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
windows编程ASCII问题
查看>>
.net webService代理类
查看>>
Code Snippet
查看>>
Node.js Express项目搭建
查看>>
zoj 1232 Adventure of Super Mario
查看>>