python笔记(三)

python笔记(控制流)

1.条件语句

(1)if (条件): (执行动作)
例:a=4,b=1000,当a中数字低于5时,用b中数字补充

a=4
b=1000
if a<5:
	a+=1
	b-=1
print(a,b)

5 999

注意,上面这个代码只循环一次,如果a=3,b=1000,那么输出则为:4 999

(2)
if (条件): (执行动作)
elif(条件):(执行动作)
else(条件):(执行动作)

例:当a=1时输出“one”,当a=2时输出“two”,当a=3时输出“three”,不满足以上则输出“No”

a=2
if a==1:
	print('one')
elif a==2:
	print('two')
elif a==3:
	print('three')
else:
	print('No')

two

2.For循环语句

for…in…:迭代循环
例:将“name”列表中的元素逐个输出,并将首字母大写

names=['tom','mary','jack','william']

for name in names:			
'''
这句代表将“names”中的元素逐一代入“name”,其中的“name”本身是没什么意义的
他只是一个“容器”,去其他变量名也可以,但一般默认取列表名的单数
'''
    print(name.title())  #.title()表示首字母大写

Tom
Mary
Jack
William

循环迭代处理列表
例:将“name”列表中元素的首字母大写并输入new_names列表

names=['tom','mary','jack','william']
for name in names:
	new_names.append(name.title())
print(new_names)

[‘Tom’,‘Mary’,‘Jack’,‘William’]

range():重复操作若干遍

例:重复打印三遍“I like apple”

for a in range(3):		#同前面,这里的a也没有意义,只是一个容器
	print('I like apple')

I like apple
I like apple
I like apple

range()函数的默认值:
range(start=0,stop,step=1)
从零开始,到“”(用户自己输入),间隔为1。
可以通过调整start,stop和step三个参数来控制range函数

例:输出50-100间的所以偶数

a=list(range(50,101,2)):	#注意,这里是算头不算尾的,所以如果要包含100,则需要stop到101
	print(a)

[50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98,100]

同样,可以利用range()辅助for循环实现本章节第一个问题
例:将“name”列表中的元素逐个输出,并将首字母大写

names=['tom','mary','jack','william']
for index in range(len(names)):		#range循环次数为names中元素的数量,这里等于4,所以index里面是数字(0,1,2,3)
	names[index]=names[index].title()	#即列表元素逐个输出(names[0],names[1]...)
print(names)

[‘Tom’,‘Mary’,‘Jack’,‘William’]

例:将names中名字全部小写,并且将姓和名用"_"连接

names=['Zhang San','Li si','Wang wu']
names_new[]	#创立一个新列表用于储存
for name in names:
	names_new.append(name.lower().replace(' ','_'))
	'''
	.lower()表示转换为小写
	.replace('a','b')表示将文中的“a”全部转换为“b”
	'''
print(names_new)

[‘zhang_san’, ‘li_si’, ‘wang_wu’]

循环迭代处理字典
一般的迭代情况下,只会输出字典中的关键字,而不会输出解释

例:分别打印names字典中的几个关键字

names={'Zhang San':'He is a handsome man',
	'Li Si':'He is very interesting',
	'Wang Wu':'He is my father'}
for key in names:
	print(key)

Zhang San
Li Si
Wang Wu

如果要同时输出关键字和其解释,则需要用的python自带的一个函数——items(),表示绑定

例:打印names字典中的几个关键字极其解释

names={'Zhang San':'He is a handsome man',
 'Li Si':'He is very interesting',
 'Wang Wu':'He is my father'}
for key,value in names.items():		#将names中的关键词和解释绑定在一起
	print('Name:{}		Saying:{}'.format(key,value))

Name:Zhang San Saying:He is a handsome man
Name:Li Si Saying:He is very interesting
Name:Wang Wu Saying:He is my father

组合打包迭代函数——zip(),表示把多个元素组合

例:给names中的名字标号

names=['Jack','Tommy','Mary']
numbers=[1,2,3]
print(list(zip(numbers,names)))

[(1, ‘Jack’), (2, ‘Tommy’), (3, ‘Mary’)]

除此之外,我们可以利用上面的range()函数和for循环实现语句

names=['Jack','Tommy','Mary']
for i,name in zip(range(len(names)),names):
	print(i+1,name)		#range()从零开始计数,因此要加一实现从一开始

1 Jack
2 Tommy
3 Mary

上面的语句思路较为复杂,实际可以利用列举函数——enumerate来用更加简洁的语句实现

names=['Jack','Tommy','Mary']
for i,name in enumerate(names):
	print(i+1,name)

1 Jack
2 Tommy
3 Mary

zip()可以打包元素,当然也可以拆开之前打包的列表,即反向打包——zip(*)

例:将上述例中的已打包的列表重新拆开

numbers_names= [(1, 'Jack'), (2, 'Tommy'), (3, 'Mary')]
numbers_new,names_new=zip(*numbers_names)
print(names_new)

(‘Jack’, ‘Tommy’, ‘Mary’)

zip()可以实现较多元素的整合

例:将a,b,c,d四个列表中的元素一一对应整合,其中a为主键,b,c,d为属性

a=['apple','banana','cat','dog']
b=[1,2,3,4]
c=['9:30','11:15','18:20','22:53']
d=['A','B','C','D']

datas=[]
for data in zip(a,b,c,d):	#将a,b,c,d打包整合逐个代入data
	datas.append('{}:{},{},{}'.format(*data))	#将data中的元素拆开并逐个通过format输入{}中,再通过append逐个插入datas列表中
print(datas)

[‘apple:1,9:30,A’, ‘banana:2,11:15,B’, ‘cat:3,18:20,C’, ‘dog:4,22:53,D’]

3.While循环语句

while…:判断循环
当while后面跟的条件判断为True时,执行下面的语句
下面的语句执行完成后,会再次回到while后面的条件,重新进行判断,若为True则再一次执行下面的语句
不断重复,直到while后面的条件为False,结束循环

break:终止循环
如果在while循环过程中执行到了break命令,则直接终止循环

continue:重新循环
如果在while循环过程中执行到了continue命令,则不进行后续命令,直接重新开始该循环

注意:break是直接终止循环,即跳出循环,而continue是停止后续命令,重新开始这个循环

例:设计程序,使其能够判断用户输入的数据是否为偶数,并且设计退出方法

while True:	#这里的条件直接设定为True,也就是无条件直接开始循环
	value=input('Number[enter q to quit]:')
	if value == 'q':
		break		#如果输入字母“q”则终止循环(即退出程序)
	number=int(value)
	if number % 2 == 0:
		continue	#如果输入偶数,则不执行任何命令,并重新开始循环
	print('It is not even number')	#如果不满足上面两个“if”,则执行该条命令

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值