python第⼆课-checkpoint
课程内容
1、条件判断
2、循环
3、函数
4、类
条件判断random在python中的意思
if condition:
do somthing
else:
do somthing
应⽤题:⼩买⽔果,合计⾦额为32.5元,⽔果店搞活动,满30打九折,求⼩实际花费。
total_cost =32.5
if total_cost >30:
discount =0.9
else:
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
else:
discount =1
total_cost *= discount
print('⼩的实际花费为: {}元'.format(total_cost))
⼩的实际花费为: 29.25元
重点
1、条件判断可以任意组合
第⼀层意思:elif可以有0到任意多个,else可有可⽆
第⼆层意思:条件判断可以进⾏嵌套
2、着重看下condition
bool(''),bool({}),bool([])# 空字符、空字典、空列表
(False, False, False)
condition =''
if condition:
print('True')
else:
print('False')
False
从理解的⾓度来讲,⼀个值被当作布尔值,概念上更像是有与没有的区别。and or not
布尔型变量做运算
a =True
b =False
print('a and b is {}'.format(a and b))
print('a or b is {}'.format(a or b))
a and
b is False
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 或False
print(not b)
[1, 2, 3]
ni hao
False
条件判断的近亲 - 断⾔
if not condition:
crash program
# 它的意思是:我断⾔肯定是这样的,如果不这样,我就崩溃
age =19
assert age ==18,'她竟然不是18岁'# assert 为断⾔
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-18-853b2e6fa3a4> in <module>
1 age = 19
----> 2 assert age == 18,'她竟然不是18岁' # assert 为断⾔
AssertionError: 她竟然不是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))
else:
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))
else:
continue# 循环if语句,是输出,不是则跳过本次继续循环if语句
print('没有跳过')
2 是偶数
没有跳过
4 是偶数
没有跳过
6 是偶数
没有跳过
8 是偶数
没有跳过
跳出循环
for number in random_numbers:
if number %2==0:
print('{} 是偶数'.format(number))
else:
break# 是则继续循环,不是则结束
print('没有结束')
2 是偶数
没有结束
循环中的else:如果在循环过程中,没有碰到break语句,就会执⾏else⾥的代码random_numbers =[2,10,4,32,6,8]
for number in random_numbers:
if number %2==0:
print('{} is 偶数'.format(number))
else:
break# 是则继续循环,不是则结束
print('没有结束')
else:
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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论