# 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表达式不成立时执行')
python3 分支结构和循环语句
最新推荐文章于 2024-07-24 20:00:41 发布