# 条件判断
# if condition:
# do something
# else:
# do something
total_cost = 32.5
is_vip=True
if total_cost>30:
discount=0.9
if is_vip:
discount=0.8
elif total_cost>50:
discount = 0.8
else:
discount=1
total_cost *=discount
print("小姐姐买水果的实际花费为:{}".format(total_cost))
# 备注elif可以有0到任意多个,else可有可无,条件判断可以嵌套
#一个值被当做布尔值,概念上更像有和没有的区别,比如为空的list\tuple\dict做if判断都是false
# 断言
age=18
assert age==18 #如果等于,程序继续执行,不等于则程序报错,中断执行
# 循环
# for循环
costs=[2,3,13,56,109]
for cose in costs:
print('消费{}元'.format(str(cose).center(10)))
# 生成一个长度为20的随机列表
import random
print(random.randint(1,10))#1到10之间的随机数
random_numbers=[]
random_numbersfor=[]
while len(random_numbers)<20:
random_numbers.append(random.randint(1,10))
print(random_numbers)
for i in range(20):
random_numbersfor.append(random.randint(1,10))
print(random_numbers)
# 找出list中偶数
a=[6,3,7,9,0,5]
for number in a:
if number % 2 ==0:
print('{} is 偶数'.format(number))
else:
print('非偶数情况这句话会被执行')
continue #跳过本次循环,执行下一次循环
print('非偶数情况这句话不会被执行')
for number in a:
if number % 2 == 0:
print('{} is 偶数'.format(number))
else:
print('非偶数情况这句话会被执行')
break #遇到非偶数情况,则结束整个循环
print('非偶数情况这句话不会被执行')
# for循环构建推导式
#列表推导式
new_numbers=[number*10 for number in random_numbers]
print(new_numbers)
#字典推导式
dict_numbers={number:'A' for number in random_numbers}
print(dict_numbers)
#生成器
new_numbers=(number*10 for number in random_numbers)
print(new_numbers)#运行报错
print(tuple(new_numbers))#生成器
# 函数
varibal={
'a':100,
'b':100,
'c':200
}
def get_keys(dict_varibal, value):
return [key for key, v in dict_varibal.items() if v==value]
print(get_keys(varibal,200))
def test(vari):
vari = 100
return vari
var=1
test(var)
print(var)#打印的值是1,函数中参数的值发生了改变,但是传递进去的参数没有发生改变
#参数的收集
# *args(*必须有,arg 是名称可以变),如果输入的参数个数不确定,其它参数全部通过 *arg,以元组的形式由 arg 收集起来
#**kargs用来收集关键字参数,只不过变量存放的方式是字典
def test(name,age,*args,**kwargs):
print(name,age,*args,**kwargs)
test('wrong',12,'lk',[23,34])
#装饰器
def testzsq():
print('test')
c=testzsq #把函数赋值给一个变量
print(c.__name__)
#函数可以当做函数的参数值
def func(a):
print("function run:{}".format(a.__name__))
func(testzsq)
#函数可以当做函数的返回值进行返回
#返回一个从0到1 的浮点值
def tesths():
return round(random.random(),2)#round函数代表四舍五入
print(tesths())
def decorator(func):
return func()
print(decorator(tesths))