一、 条件判断
1. 简介:
计算机之所以能做很多自动的任务,因为他们可以自己做条件判断,所以条件判断语句的重要性可想而知。条件判断在python中利用if实现。
2. 语法格式:
if 判断语句:
执行语句1
执行语句2
判断语句后面加:作为执行语句的代码段的开始,执行语句的前面要添加空格,使语句缩进在if语句的框架内(通常使用tab键)。
有缩进和没缩进的示例:
结果:
3. if判断剖析:
1) if判断语句中依靠bool值:
如:对与错,真与假,空和非空等。
2) bool值包含两个值:
- true:是表示非空的量(比如,string,tuple,list,set,dict等),和所有非零整数
- false:表示0,none,空的量。
主要作用用于判断语句中,判断:
- 一个字符串是否为空。
- 一个运算结果是否为零。
- 一个表达式是否可用。
- 一句语句是否正确
4. 简单的条件判断示例。
如果if 的语句判断则输出缩进的内容
but ,请注意if 后面接逗号!
运行结果:
5. 添加一个else做更细致的判断:
1) 语法格式:
If判断语句:
执行语句1
else:
执行语句2
同时也注意不要少写了冒号:
else后面不接东西;就这样 else:
运行结果:
6. 更细致的判断eif
添加elif:
elif 是else if 的缩写,可以同时存在多个elif 形式就是:
if 条件判断1 :
执行语句1
elif 条件判断2:
执行语句2
elif 执行判断3:
执行语句3
else
执行语句4
但是if 语句有一个特点,他是从上往下判断的,一旦有一个判断结果为true,则把对应的语句执行完毕后就忽略掉后面的elif和else。
如,测试为什么会返回teenager:
7. 进阶的双if嵌套循环
if语句中的执行语句可以执行任何语句,所以也包括if
接下来我们将写一个双重if的循环
嵌套if…elif… else
if expression1:
statement(s)
if expression2:
statement
else:
statement(s)
else:
statement(s)
示例:
x=int(input("Please Input x: "))
y=int(input("Please Input y: "))
if x>=90:
if y>=90:
print("A")
else:
print("WTF?")
else:
print("GO HOME!")
8. 加入input使程序更加有意思:
这里会报一个错,解决办法见9:
9. 报错之后解决办法,数据类型转换。
这里报了一个错,因为input返回的值是str,str不能直接与int整形比较,所以这里就必须要把str转换为整数。Python提供了一种int()函数来解决这种问题。
这样的强制类型转换,解决了这样的问题,但是输如abc 呢?又会得到一个问题
原来int()函数发现一个字符串不是一个合法数字就会报错,接着程序就退出了。
so,如何检查并捕获程序运行期的错误呢?后面的错误和调试会讲到。
10. 练习:
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
用if-elif判断并打印结果:
二、 while循环
1. 简单的for ….in 循环:
他会依次把list或者tuple中的元素迭代出来。
1) 语法格式:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
2) 这里先复习下什么是list 和tuple
- list的结构
student = [‘a’,’b’,’c’] #list的内容是可以增加和删除的
tuple结构
name = (1,2,’sdc’) #tuple的内容是不可变的
3) for X in ……循环示例:
for x in …循环就是每个元素代入变量x ,然后执行缩进的语句,如print。
4) sum变量做累加计算1-10的整数之和:
如果要计算1-100的和呢?是不是要从1打到100?no 我们可没那么傻,在python 中提供了一个叫range()的函数,可以生成一个整数序列,再通过list函数就可以转换为list 列如:
如果要生成元组tuple直接替换list 即可
但range函数生成的整数序列是0-100之间的。所以我们需要0-100需要设定为101:
2. while循环
只要条件满足就一直循环,不退出。条件不满足时退出循环,比如我们要计算1-100的和。那么:
1) 计算1-100的偶数和:
为什么这里没有前面的那一串了呢。因为print的位置问题,如果缩进的话就被判断为循环内,每次循环执行,而不缩进就只有循环结束执行。
2) 练习:
请利用循环依次对list中的每个名字打印出Hello, xxx!:、
L = [‘Bart’, ‘Lisa’, ‘Adam’]
但是有个问题,语句之间有空格,那是因为,print的时候字符之间加的逗号会变成空格。把它替换为+号就好了。