04.02
1.格式化
2.List和tuple学习
3.条件控制语句
格式化:
我们经常会输出类似’亲爱的 xxx 你好!你xx 月的话费是 xx,余额是 xx’
之类的字符串
而 xxx 的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。```
举例说明:
总结:
%,%s,%d
%----------占位符
%s---------表示字符串的占位符
%d---------表示整数的占位符
常见的占位符: %d %f:浮点符 %s
总结:
%2d------表示两个占位符,如果数不够,用空格来站位
%02d-------也表示两个占位符,如果数不够,用0来站位
%.2f--------保留小数点后两位
如果你不确定用什么站位符
%s—永远起作用,它会把任何数据类型转换为字符串
%.5s------表示5个位置,包括小数点,空格等。
%.3s------表示三个位置,包括小数点,空格等。
%3.f------表示小数点后面三位
89.78
有些时候,字符串里面的%是一个普通字符怎么办
这个时候就需要转义,用%%来表示一个%
print(‘growth rate: %d %%’ % 7)
7%
format()
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多:
print(‘Hello, {0}, 成绩提升了 {1:.1f}%’.format(‘小明’, 17.125)
练习
小明的成绩从去年的72分提升到了今年的85分
s1=72
s2=85
r=(s2-s1)/s1*100
name=‘小明’
print(‘hello, %s, 成绩提高了: %.2f %%’ %(name,r))
print(‘hello, %s, 成绩提高了: %.4s %%’ %(name,r))
使用list和tuple
也是一种python内置的数据内型
Python内置的数据类型是列表:list。List是一种有序的集合,可以随时添加和删除其中的元素
语法以及定义方式:
list=[] :[]-----方括号表示集合
Classmates=[‘张三’,’李四’,’王五’,’小明’]
classmates的长度:len=(classmates)=4
#超出列表索引会报错
#IndexError: list index out of range
添加元素方法:
append() : 在列表最后插入元素 (一个参数)
insert():在指定索引处,插入元素。(两个参数)
classmates = [‘张三’, ‘李四’, ‘王五’,‘小明’]
print(len(classmates))
classmates的长度是多少?
超出列表索引会报错
IndexError: list index out of range
#如何将’小红’加入classmates这个列表当中
classmates.append(‘小红’)
#append():想列表中添加元素。列表当中的方法,用’.’点,调用。
append():添加的元素是在列表的最后。
#如何添加到列表的指定位置,eg:添加到第一个位置
classmates.append(0,‘小白’)
TypeError: append() takes exactly one argument (2 given)
#append(): 只能接受一个参数,我们给了它两个参数,所以会报错
classmates.insert(0,‘小白’)
insert():在指定索引处,插入元素。
删除元素:
#pop() :删除列表当中最后一个元素
#pop(index): 删除指定索引的元素
classmates = [‘张三’, ‘李四’, ‘王五’,‘小明’]
print(classmates)
#删除元素
classmates.pop()
print(classmates)
classmates.pop(1)
print(classmates)
列表内置方法:
pop():删除列表当中最后一个元素
pop(index):删除指定索引的元素
append(value):在列表最后插入元素(一个参数)
insert(index,value):在指定索引处,插入元素。(两个参数)
列表插入删除练习:
Fruit=[‘苹果’,’香蕉’,’橘子’]
1.添加‘西瓜’到fruit列表的最后,打印输出fruit
2.添加‘苹果’到苹果的后面,打印输出fruit
3.删除fruit列表的最后一个元素,打印输出fruit
4.删除fruit列表的第2个元素,然后打印输出fruit
5.打印输出‘橘子’
答案:
1.fruit.append(‘西瓜’)
2.fruit.insert(1,‘草莓’)
3.fruit.pop()
4.fruit.pop(2)
5.print(fruit[2])
列表:
list = [1,2,3,True,’小明’,None,3.124, [] ]
二维列表:
练习:
1.请用索引取出下面list的指定元素:
-- coding: utf-8 --
L = [
[‘Apple’, ‘Google’, ‘Microsoft’],
[‘Java’, ‘Python’, ‘Ruby’, ‘PHP’],
[‘Adam’, ‘Bart’, ‘Lisa’]
]
打印Apple:
print(?) L[0][0]
打印Python: L[1][1]
print(?)
PHP: L[1][3]
打印Lisa:
print(?)
04.09
list:一种数据类型,可以任意添加删除元素
tuple元组:也是一种数据类型,有序,不能添加删除元素,即:tuple一旦初始化就不能修改了,没有list的添加删除方法没有append(),insert(),pop()等方法。 定义:L=(),其他和list相同,eg:索引表示,计算tuple长度:lenth()
classmates=(‘zhangsan’,’list’,’wangwu’)
money=(3000,4000,5000).
tuple的意义优点:tuple不能改变代码更安全,如果可能,能用tuple代替list就尽量用tuple。
list=[()]:二维列表
tuple=([1, 2, 3,], [4, 5, 6], [7, 8, 9])
如果tuple里面有list,那么可以改变list的元素。
tuple = ([1, 2, 3], [4, 5, 6], [7, 8, 9])
print(tuple[0])
print(type(tuple[0]))
print(tuple[0].append(122))
print(tuple)
6 --------- tuple[1][2]
tuple的缺陷:当你定义一个tuple时,在定义的时候,tuple的元素就必须被定义下来。
Eg:
t=(1,2)
t
(1,2)
1.定义一个空tuple,tuple=()
2.定义只有一个元素的tuple: tuple=(1,)
请问以下变量哪些是tuple类型:
a = () √
b = (1)
c = [2]
d = (3,) √
e = (4,5,6) √
条件判断语句:
if…else
比如,输入用户年龄,根据年龄打印输出不同的类容
age = 20
if age >= 18:
print(‘你的年龄是 %s’ % age)
print(“成人”)
根据python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了。
如果if语句判断是False, 就不执行。(否则什么都不做。)
也可以给if添加一个else语句,意思是,如果if判断为False,不要执行if 的内容,
去执行else 里面的内容。
age = 5
if age >= 18:
print(‘你的年龄是 %s’ % age)
print(“成人”)
else:
print(‘你的年龄是 %s’ % age)
print(“未成人”)
注意: 不要少写了冒号 :
可以用else if 缩写: elif
age = 16
if age>=18:
print(“adult”)
elif age >= 10:
print(“青少年”)
elif age >=6:
print(“青少年1”)
else:
print(“kid”)
elif 是 else if 的缩写,完全可以有多个elif。
语法
‘’’
if <条件判断1>:
<执行内容1>
elif <条件判断2>:
<执行内容2>
elif <条件判断3>:
<执行内容3>
else:
<执行内容n>
‘’’
说明: 从上往下判断,如果在某个判断上为True,那么把判断对应的语句执行后,
就忽略掉剩下的elif和else。
练习:
小明身高1.75m,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
用if-elif判断并打印结果:
-- coding: utf-8 --
height = 1.75
weight = 80.5
bmi = ???
if ???:
print(“”)
答案:
weight = 80.5
height = 1.75
bmi = weight/(height*height)
if bmi<18.5:
print(“过轻”)
elif bmi<=25:
print(“正常”)
elif bmi<=28:
print(“过重”)
elif bmi<=32:
print(“肥胖”)
else:
print(“严重肥胖”)
改版: 用户自动输入,加格式化练习
name = input(“请输入名字:”)
weight = float(input(“请输入体重:”))
height = float(input(“请输入身高:”))
bmi = weight/(height*height)
if bmi<18.5:
print(name,“的bmi为:%.2f,为 %s” % (bmi,“过轻”))
elif bmi<=25:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “正常”))
elif bmi<=28:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “过重”))
elif bmi<=32:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “肥胖”))
else:
print(name, “的bmi为:%s,为 %s” % (bmi, “严重肥胖”))
改版二: 加上list练习
分别计算 张三、小明和小红的 bmi
classmate = [[‘张三’, 67, 1.75],[‘小明’, 77, 1.80],[‘小红’, 88, 1.90]]
name = classmate[0][0]
weight = classmate[0][1]
height = classmate[0][2]
bmi = weight / (height * height)
if bmi < 18.5:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “过轻”))
elif bmi <= 25:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “正常”))
elif bmi <= 28:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “过重”))
elif bmi <= 32:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “肥胖”))
else:
print(name, “的bmi为:%s,为 %s” % (bmi, “严重肥胖”))