python3 分支结构和循环语句

# for if while三大循环和分支语句

print('*********************************************************')
print('*********************************************************')
# for 语句
# 遍历整个列表,for循环,for循环都是以for XX in XX:   格式编写
magicians = ['alice', 'david', 'carolina']  # 定义一个列表
for magician in magicians:  # 使用for语句可以将列表中的每一个元素都打印出来
    print(magician)

# 也可使用for循环将列表的每一个元素插入到字符串中
for magician in magicians:  # 我理解的是,magician属于临时变量,只能在这个for循环里面调用
    print('hello,' + magician.title() + 'ni hao a !')  # 然后使用title()函数将列表每个元素开头都用大写输出
    print('heihei,' + magician.title() + 'hahahahahahaha!\n')  # 字符串中可以加入各种各样的函数
# 在代码行for magician in magicians后面,每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次
# for循环会将列表中的每一个元素一行行的打印出来,会自动显示换行的效果
print('gan xie ge wei de dao lai !')  # 没有缩进的就代表在for循环外面,当执行完for循环的内容时,程序将会往下执行

# 创建数值列表 range
# range传入的参数是range(上限数(默认从0开始),下限数,步长=None),所以步长可有可无,步长默认为1
# 使用函数 range(),属于一种输出范围的函数
for i in range(5):
    print(i,end=' ') # 输出 0 1 2 3 4

for value in range(1, 6):  # 使用range()可以将1-6之内的范围数字打印出来,但是不包含6本身,只打印了1.2.3.4.5
    print(value)
# 也可以直接写数字6
for value in range(6):  # 但是输出的连0都有,0.1.2.3.4.5
    print(value)

# **两个乘号就是乘方。比如3**4,结果就是3的4次方,结果是81,3**4的公式就是3×3×3×3=81,结果等于81,就是3的4次方
squares = []
for value in range(1,11):	#这里输出1.2.3.4.5.6.7.8.9.10
    square = value**2	#然后将value的每一个数字都**2,也就是2次方,然后把结果存放到square变量中
    squares.append(square)	#然后将每一次的结果都使用append函数添加去squares列表中
    #上面这两句语句可以使用简洁方法squares.append(value**2),这样直接写也可以
print(squares)

# 增加步长
# 以下案例输出奇数
# range传入的参数是range(上限数(默认从0开始),下限数,步长=None),所以步长可有可无,步长默认为1
for i in range(1,10,2):
    print(i,end=' ') # 输出 1 3 5 7 9


#列表解析
#跟上面的例子一样,只不过编写方式简洁了,首先定义列表,在列表里面编写表达式
squares = [value**2 for value in range(1,11)]
print(squares)

#for(迭代)遍历列表
"""
迭代遍历列表会顺序的从列表中依次获取数据,
每次循环过程中,数据都会保存在 i 这个变量里面,
 i 变量名是随便起的,属于临时变量,只能在当前for循环里面使用
"""
a = ['aa','ss','dd','ff']
for i in a:
    print('我的名字叫 ' + i)

# 使用枚举遍历序列
a = ['haha','hehe','heihei']
for i,j in enumerate(a): # i是接收元素序列的,j是接收元素值的
    print('序列:',i,'元素:',j)
'''
输出:
序列: 0 元素: haha
序列: 1 元素: hehe
序列: 2 元素: heihei
'''

# 不单单只有if才有else语法,连for和while也有
# 执行流程为,先执行for的代码,执行完后再执行else的代码
for i in range(5):
    print(i)
else:
    print('执行完毕')


print('*********************************************************')
print('*********************************************************')
# if 语句
#一个简单的if语句
# ==比较操作符和is同一性运算符区别,is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。
# if当条件表达式成立时执行,else当条件不成立时执行
if True:
    print('条件成立')
else:
    print('条件不成立')
# 输出:条件成立
# 如果if表达式为False,表达式就不成立

if None: # 因为None为空字符,所以表达式不成立
    print('条件成立')
else:
    print('条件不成立')
# 输出:条件不成立

cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:	#使用for in循环遍历列表
    if car == 'bmw':	#遍历列表的时候,如果遍历到bmw的值,那就代表条件成立,将执行下面的缩进语句
        print(car.upper())	#当条件成立时,就使用upper()函数将'bmw'全部打印成大写
    else:	#这个是当条件不成立时,就执行下面的缩进语句
        print(car.title())	#当条件不成立时,就使用title()函数将列表其他元素的开头使用大写输出

#检查是否不相等
#要判断两个值是否不等,可结合使用惊叹号和等号( != ),其中的惊叹号表示不
requested_topping = 'mushrooms'
if requested_topping != 'anchovies': #将requested_topping 的值与'anchovies'进行比较,如果它们不相等,就执行下面语句
    print("Hold the anchovies!")

age = 19	#创建一个名为age的变量,然后赋值19给它
if age >= 18:	#当age的值大于等于18的时候,这个条件将成立,将执行缩进出的代码
    print("You are old enough to vote!")
#如果 age 的值小于18,这个程序将不会有任何输出。

#if-else 语句
# if-else 语句块类似于简单的 if 语句,但其中的 else 语句让你能够指定条件测试未通过时要执行的操作。
age = 17	#创建一个名为age的变量,然后赋值17给它
if age >= 18:	#当age的值大于等于18的时候,将执行这里的缩进代码,否者将执行else中的缩进代码
	print("You are old enough to vote!")
	print("Have you registered to vote yet?")
else:	#因为if的条件不成立,所以将执行else中的缩进代码
	print("Sorry, you are too young to vote.")
	print("Please register to vote as soon as you turn 18!")

#if-elif-else 结构
#经常需要检查超过两个的情形,为此可使用Python提供的 if-elif-else 结构。
#Python只执行if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。
age = 12
if age < 4:	#检查age的值是否小于4,如果是,将执行缩进代码,如果不是,将往下执行
	print("Your admission cost is $0.")
elif age < 18:	#当上一个if语句条件不成立的时候,就执行到这里,elif相当于另一个if语句
	print("Your admission cost is $5.")
else:
	print("Your admission cost is $10.")

#使用多个 elif 代码块,一个if结构中,可以有多个elif语句,但是一定是以if语句开头,else语句可要可不要,当else存在的话,就一定是在当前if语句结尾
#if-elif-elif-else,在同一个if结构里面,只会执行一个,当一个条件成立了,那么就会结束这个if结构
age = 12
if age < 4:	#检查age的值是否小于4,如果是,将执行缩进代码,如果不是,将往下执行
	print("Your admission cost is $0.")
elif age < 18:	#当上一个if语句条件不成立的时候,就执行到这里,elif相当于另一个if语句
	print("Your admission cost is $5.")
elif age < 65:
	print("Your admission cost is $15.")
else:
	print("Your admission cost is $10.")

list = []	#创建一个空列表
if list:	#判断列表是否为空,如果不是,将执行下面的缩进代码
	for lists in list:	#遍历requested_toppings列表元素
		print("Adding " + lists + ".")	#将列表的每一个元素都打印进来
	print("\nFinished making your pizza!")
else:	#如果列表为空,那执行else
	print("Are you sure you want a plain pizza?")

qwe = ['mushrooms', 'olives', 'green peppers','pepperoni', 'pineapple', 'extra cheese']
asd = ['mushrooms', 'french fries', 'extra cheese']
for requested_topping in asd:	#遍历asd列表,创建一个临时变量requested_topping
	if requested_topping in qwe:	#然后再将asd列表中的元素去qwe列表中遍历,如果有将执行缩进代码,如果没有将往下执行
		print('有'+ requested_topping)
	else:	#当asd列表中的元素在qwe列表中没有找到,就将没有的元素打印出来
		print('没有'+ requested_topping)
#注意:for循环可以有临时变量,if循环不允许有临时变量
#遍历都是一行一行的打印出来

yonghu1 = ['xiaoxiao','xiaoming','xiaolan']	#想创建的用户
yonghu2 = ['xiaowen','xiaoming','xiaoxiao']	#系统中的用户
for i in yonghu1:	#将yonghu1遍历一下
	if i in yonghu2:	#然后将yonghu1的列表遍历一下yonghu2中的元素是否存在,如果存在将执行缩进代码
		print('已经有了' + i)
	else:	#如果不存在,就执行else的缩进代码
		print('可以创建' + i)

height = input("How tall are you, in inches? ")	#获取用户输入的值,再存储到height变量中
height = int(height)	#将height变量的值转换成int整数
#如果将input函数插入到表达式条件当中,一般都要转换其类型,要么str字符串类型,要么int整型
if height >= 36:	#判断height变量中的值是否大于等于36,
	#如果True就执行这里
	print("\nYou're tall enough to ride!")
else:
	#如果False就执行这里
	print("\nYou'll be able to ride when you're a little older.")

#偶数奇数
number = input("请输入数字: ")
number = int(number)	#将用户输入的转换成整型
if number % 2 == 0:		#将用户输入的数字除2,如果能被整除,也就是等于0的话,就是偶数,否则就是奇数
    print("\n偶数 " + str(number))
else:
    print("\n奇数 " + str(number))



print('*********************************************************')
print('*********************************************************')
# while 语句
'''
基本语法:
初始条件设置 = 通常是重复执行的 计数器
while 条件(判断、计数器、是否达到、目标次数):
	条件满足时,做的条件1
	条件满足时,做的条件2
	----
	处理条件(计数器 + 1)
	
break和continue是专门在循环中使用的关键字
break 某一条件满足时,退出循环,不再执行循环后续重复的代码,相当于终止循环
continue 某一条件满足时,不执行后续重复代码,相当于跳过
'''
# while 循环不断地运行,直到指定的条件不满足为止
# 你可以使用 while 循环来数数,例如,下面的 while 循环从1数到5:
current_number = 1
while current_number <= 5:  # 当变量的值小于等于5时,就不断的运行,直到被加到6时停止
    print(current_number)
    # 是current_number = current_number + 1 的简写,每次执行到这里都将current_number变量的值加1
    current_number += 1

# 让用户选择何时退出
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\n退出就输入quit: "
message = ""
while message != 'quit':  # 当用户输入的值不是quit,就继续执行代码
    message = input(prompt)
    # print(message)
    # 当用户输入了quit,将执行下一个代码块,继续往下执行,如果往下没有代码了,就退出程序
    # 因为上面的代码退出时,quit也会显示出来,为了更好看,添加以下代码优化一下
    if message != 'quit':  # 当用户输入不是quit的时候,就输出空白
        print(message)  # message变量名是空白,所以输出的时候是空白

# 当一个程序会有多种情况需要程序终止的话,可使用这个方法
prompt = 'hello:'
active = True  # 设置一个变量,储存布尔值True
while active:  # 因为变量的值是True布尔,所以循环会一直执行下去,直到成为False
    message = input(prompt)
    if message == 'quit':  # 当用户输入的值是quit,就执行下面缩进代码
        active = False  # 将active变量中的值修改为False
    # 当程序需要多种情况终止程序的话,可以添加多个判断,elif,如下:
    # elif message == 'aaa':	#当用户输入aaa的时候,也将active的变量值修改为False
    #	active = False

    else:  # 如果if语句没有成立,就执行else这里
        print(message)  # 再重新回到用户输入

# 使用 break 退出循环
# break 语句可使用在任何循环语句当中,if、for、whlie都可以
# 要立即退出 while 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,
# 可使用break 语句。 break 语句用于控制程序流程,可使用它来控制哪些代码行将执行,
# 哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。
while True:
    city = input('输入:')
    if city == 'quit':  # 当用户输入quit的时候
        break  # 将会触发break语句,立即退出whlie循环
    else:
        print(city)

# 在循环中使用 continue语句
# 要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用 continue 语句,
# 它不像 break 语句那样不再执行余下的代码并退出整个循环。
# 例如,来看一个从1数到10,但只打印其中奇数的循环:
current_number = 0
while current_number < 10:  # 当变量的值小于10的时候,将执行缩进代码
    current_number += 1  # 将current_number变量的值每次加1
    if current_number % 2 == 0:  # 当变量名current_number的值%2等于0的时候执行缩进代码
        continue  # 将使用continue语法跳过本次循环,返回到if外面继续执行
    print(current_number)  # 然后将每次不被整除的数字打印出来

# 避免无限循环
# 每个 while 循环都必须有停止运行的途径,这样才不会没完没了地执行下去
x = 1
while x <= 5:  # x变量的值小于等于5时,执行缩进代码,一直等到x的值大于5时,程序就会停止
    print(x)  # 每次打印出来
    x += 1  # 执行到这里会将x加1,但是如果少了这行代码,程序将会无休无止的执行下去

# 使用 while 循环来处理列表和字典
# for 循环是一种遍历列表的有效方式,但在 for 循环中不应修改列表,否则将导致Python难以跟踪其中的元素。
# 要在遍历列表的同时对其进行修改,可使用 while 循环。
# 通过将 while 循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。

# 在列表之间移动元素
unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
while unconfirmed_users:  # 一直不断运行,直到unconfirmed_users列表为空时停止
    # 使用pop()函数,将列表中的元素一个一个的提取出来存放到current_user变量中,每次循环提取一个
    current_user = unconfirmed_users.pop()
    print("Verifying user: " + current_user.title())  # 将提取出来的信息打印出来
    confirmed_users.append(current_user)  # 使用append()函数将提取的信息添加到confirmed_users列表中
# 遍历列表
print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
    print(confirmed_user.title())

# 将有元素的列表,一个一个删除,直到返回空列表
list = ['a', 's', 'd', 'f', 'g', 'h']
while list:
    list.pop()
print(list)

# 删除包含特定值的所有列表元素
# 使用remove函数删除指定值,正常来说,只是删除列表中的一个,如果列表中出现多个该怎么办?
# 可以在while循环中使用,这样就会不断的遍历列表,直到没有该值为止。
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
while 'cat' in pets:  # 将指定值遍历列表,如果列表出现该值,则执行缩进代码
    pets.remove('cat')  # 使用remove函数删除指定值
print(pets)

# 使用用户输入来填充字典
responses = {}  # 创建一个空字典
polling_active = True
while polling_active:  # 当while为True时,程序持续运行,当为False时,程序结束,执行下一个代码块,跟while平行的,叫下一个代码块
    name = input("\n输入键: ")  # 将用户输入的值储存在name变量里面
    response = input("输入值: ")  # 将用户输入的值储存在response变量里面
    responses[name] = response  # 将变量名name的值储存在字典中的键,将变量名response的值储存在字典中的值
    repeat = input("Would you like to let another person respond? (yes/ no) ")  # 咨询用户是否继续
    if repeat == 'no':  # 当用户输入no的时候,将执行缩进代码
        polling_active = False
for name, response in responses.items():  # 遍历字典,以列表的形式返回,name对应着字典中的键,response对应字典中的值
    print(name + " would like to climb " + response + ".")

# 循环计算求和
# 计算0-100的和
jieguo = 0  # 存放求和结果
i = 0  # 设置条件
while i <= 100:
    jieguo += i
    i += 1
print(jieguo)

# 循环计算偶数求和
i = 0
jieguo = 0
while i <= 100:
    # 偶数:i % 2 == 0 被2整除的就是偶数
    # 奇数:i % 2 != 0 不被2整除的就是奇数
    # 判断变量 i 中的值是否被2整除
    if i % 2 == 0:  # 当满足条件就执行下面的代码
        jieguo += i
    i += 1
print(jieguo)

#打印九九乘法表
i = 1
while i <= 9:
	y = 1
	while y <= i:
		print('%d * %d = %d' %(y, i, y*i), end='\t')
		y += 1
	print('')
	i += 1

# 注:while也有else语法
# 执行流程,当while条件成立时,就不执行else,只执行while里面代码,当while条件不成立时,就执行else
# 执行流程,当while条件成立时,就不执行else,只执行while里面代码,当while条件不成立时,就执行else
while True:
    for i in range(5):
        print(i)
        if i == 3:
            exit()
else:
    print('while表达式不成立时执行')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值