python第⼆课-checkpoint
课程内容
1、条件判断
2、循环
3、函数
4、类
条件判断
if condition:
do somthing
el:
do somthing
应⽤题:⼩姐姐买⽔果,合计⾦额为32.5元,⽔果店搞活动,满30打九折,求⼩姐姐实际花费。
total_cost =32.5
if total_cost >30:
discount =0.9
el:
discount =1
total_cost *= discount
print('⼩姐姐的实际花费为: {}元'.format(total_cost))
⼩姐姐的实际花费为: 29.25元
应⽤题:⼩姐姐买⽔果,合计⾦额为32.5元,⽔果店搞活动,满30打九折,超过50元,打⼋折,求⼩姐姐实际花费。total_cost =32.5
if total_cost >50:
discount =0.8
elif total_cost >30:
discount =0.9
el:
discount =1
total_cost *= discount
print('⼩姐姐的实际花费为: {}元'.format(total_cost))
⼩姐姐的实际花费为: 29.25元
重点
1、条件判断可以任意组合
第⼀层意思:elif可以有0到任意多个,el可有可⽆
第⼆层意思:条件判断可以进⾏嵌套
2、着重看下condition
bool(''),bool({}),bool([])# 空字符、空字典、空列表
(Fal, Fal, Fal)
condition =''
文师if condition:
print('True')
el:
print('Fal')
Fal
从理解的⾓度来讲,⼀个值被当作布尔值,概念上更像是有与没有的区别。and or not
布尔型变量做运算
a =True
b =Fal
print('a and b is {}'.format(a and b))
print('a or b is {}'.format(a or b))
a and
b is Fal
a or
b is True
子行矣
⾮布尔类变量做and or not运算
a ='hello world'
b =[1,2,3]
print('a and b is {}'.format(a and b))
print('a or b is {}'.format(a or b))
a and
b is [1, 2, 3]
a or
b is hello world
# ⾮布尔型变量 and 运算
a =[1,2,3]
b =10
print(b and a)
# ⾮布尔型变量 or 运算
a ='ni hao'
b ={'apple':100}
print(a or b)
基础会计知识点
# ⾮布尔型变量 not 运算,永远返回True 或Fal
print(not b)
[1, 2, 3]
ni hao
Fal
条件判断的近亲 - 断⾔
if not condition:
crash program
# 它的意思是:我断⾔肯定是这样的,如果不这样,我就崩溃
age =19
asrt age ==18,'她竟然不是18岁'# asrt 为断⾔
---------------------------------------------------------------------------
AsrtionError Traceback (most recent call last)
教资报名条件<ipython-input-18-853b2e6fa3a4> in <module>
1 age = 19
----> 2 asrt age == 18,'她竟然不是18岁' # asrt 为断⾔
AsrtionError: 她竟然不是18岁
循环
for 循环 - 遍历循环
while 循环 - 条件循环
costs =[3,4,25,36,62,102,33,100]
for cost in costs:
print('消费 {} 元'.format(str(cost).center(8)))
消费 3 元
消费 4 元
消费 25 元
消费 36 元
消费 62 元
消费 102 元
消费 33 元
消费 100 元
⽣成⼀个长度为20的随机列表
import random
random_numbers =[]
while len(random_numbers)<20:
random_numbers.append(random.randint(1,10))
print(random_numbers,len(random_numbers))
[4, 7, 9, 6, 1, 5, 8, 5, 1, 6, 5, 7, 5, 5, 9, 6, 5, 9, 8, 1] 20
编程建议:只要能使⽤ for 循环,就不要⽤ while 循环
import random
random_numbers =[]
for i in range(20):
random_numbers.append(random.randint(1,10))
print(random_numbers,len(random_numbers))
[5, 5, 3, 5, 2, 5, 7, 5, 1, 1, 3, 7, 3, 5, 4, 5, 9, 4, 10, 4] 20
什么时候必须⽤while循环:当循环的条件跟数量没有关系时,只能⽤while 题⽬:往空列表中添加随机数,直到添加的数为9,则终⽌
random_numbers =[]
while9not in random_numbers:
random_numbers.append(random.randint(1,10))
print(random_numbers,len(random_numbers))
[7, 2, 8, 9] 4
重点:只有⼀个元素的列表
问题:a = [1,2,3], b = 1, c =(b in a), ⼤家猜测,c是⼀个什么类型,它是不是⼀个元组?# 死循环演⽰
腰花怎么去腥味
import time
number =0
while True:
time.sleep(1)
number +=1
print('hello world. {} '.format(number), end='\r')
hello world. 18
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
垂丝柳
<ipython-input-28-befe09d1ab67> in <module>
4 number = 0
5 while True:
----> 6 time.sleep(1)
7 number += 1
8 print('hello world. {} '.format(number), end='\r')
KeyboardInterrupt:
a =[1]
b =(1,)# 只是这么写为数值,如果在数值后⾯加上逗号,即为元组
type(a),type(b)
(list, tuple)
random_numbers
[7, 2, 8, 9]
for number in random_numbers:
if number %2==0:
print('{} 是偶数'.format(number))
el:
print('{} 是奇数'.format(number))
7 是奇数
2 是偶数
8 是偶数
9 是奇数
continue 跳过
random_numbers =[2,3,4,5,6,8]
for number in random_numbers:
if number %2==0:
print('{} 是偶数'.format(number))
el:
continue# 循环if语句,是输出,不是则跳过本次继续循环if语句
print('没有跳过')
2 是偶数
没有跳过
4 是偶数
序言范文
没有跳过
6 是偶数
没有跳过
8 是偶数
没有跳过
跳出循环
for number in random_numbers:
if number %2==0:
print('{} 是偶数'.format(number))
el:
break# 是则继续循环,不是则结束
print('没有结束')
2 是偶数
没有结束
循环中的el:如果在循环过程中,没有碰到break语句,就会执⾏el⾥的代码random_numbers =[2,10,4,32,6,8]
干竹笋的做法大全
for number in random_numbers:
if number %2==0:
print('{} is 偶数'.format(number))
el:
break# 是则继续循环,不是则结束
print('没有结束')
el:
print('全是偶数')
2 is 偶数
没有结束
10 is 偶数
没有结束
4 is 偶数
没有结束
32 is 偶数
没有结束
6 is 偶数
没有结束
8 is 偶数
没有结束
全是偶数
for 循环可以构建推导式
所谓推导式,就是⼀种从⼀个数据序列构建另⼀个数据序列的⽅法。
random_numbers =list(range(10))
random_numbers
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
new_numbers =[]
for number in random_numbers:
new_numbers.append(number *10)
new_numbers