Python基础-循环
1.while 循环
#str = '媳妇儿,我错了'
# 1.定义循环变量初始值
# index = 0
# # 2.循环
# while index<10000:
# # 3.执行循环的操作
# print(str)
# 4.修改变量
# index += 1
"""------------------ 死循环 ------------------"""
# 忘记修改循环变量,循环变成死循环,程序里面尽量避免死循环
# 有些情况下,也会使用到死循环 QQ服务器 接收传输消息 微信 图形化开发界面 PyQt PyGame 界面 死循环 保证界面一直渲染
# 要写一个死循环,保证程序不停止,循环中不执行任何操作
# if True:
# pass
while True:
# 如果在作用域里面不执行任何操作,可以使用pass占位
pass
# print('程序开始')
# # 1.定义循环变量初始值
# index = 1
# # 2.循环
# while index<=5:
# # 3.执行循环的操作
# print(str)
# # 4.修改变量
# index += 1
#
# print('程序结束')
求和练习:
"""
计算 0 ~ 100 之间所有数字的累计求和结果
0 +1 +2 +3 +4 +5 +..+100
分析:
1.定义变量保存求和的结果
2.定义while循环执行100次求和
"""
"""------------------ 练习 ------------------"""
# # 1.定义变量保存求和的结果
# sum = 0
# # 2.定义while循环执行100次求和
# index = 0
# while index < 101:
# sum += index
# # 修改循环变量
# index += 1
# print(sum)
"""------------------ 练习升级 ------------------"""
"""
计算 0 ~ 100 之间 所有 偶数 的累计求和结果
"""
# 1.定义变量保存求和的结果
sum = 0
# 2.定义while循环执行100次求和
index = 0
while index < 101:
# 如果是偶数才加到sum上
if index%2==0:
sum += index
# 修改循环变量
index += 1
print(sum)
回文数练习:
"""
打印所有3位回文数
回文数:121 505 131 141 111 222 333 898
分析:
1.找到所有的三位数
100-999 while循环
2.判断数据是否是回文数
百位:数据//100
个位:数据%10
判断百位和个位是否相等
"""
# 1.找到所有的三位数
# 定义循环变量
index = 100
# while循环
while index < 1000:
#2.判断数据是否是回文数
# 百位:数据//100
hun = index//100
# 个位:数据%10
single = index%10
# 判断百位和个位是否相等
if hun==single:
print(index)
# 修改循环变量
index += 1
print('程序结束')
2.break:
"""
找到第一个5位数回文数
10001 20002 21312 34543
分析:
1.5位数范围 10000-99999
2.确定回文数
万位:数据//10000
千位:数据%10000//1000
十位:数据%100//10
个位:数据%10
3.保证只输出一个回文数
"""
"""------------------ 找到第一个5位数回文数 ------------------"""
# # 1.5位数范围 10000-99999
# index = 10000
# while index < 100000:
# # 2.确定回文数
# # 万位: 数据 // 10000
# wan = index // 10000
# # 千位: 数据 % 10000 // 1000
# qian = index % 10000 // 1000
# # 十位: 数据 % 100 // 10
# ten = index % 100 // 10
# # 个位: 数据 % 10
# single = index % 10
#
# # 如果万位和个位相等 并且 千位和十位相等的话 就是回文数
# if wan == single and qian == ten:
# # 3.保证只输出一个回文数
# # 执行了一次print代码 ,说明我们找到了这个回文数
# print(index)
# # 找到了回文数 ,可以退出循环,不需要继续查找了
# break
#
# # 修改循环变量
# index += 1
"""------------------ 找到第10个5位数回文数 ------------------"""
# 10901
# 定义变量记录找到的回文数个数
number = 0
# 1.5位数范围 10000-99999
index = 10000
while index < 100000:
# 2.确定回文数
# 万位: 数据 // 10000
wan = index // 10000
# 千位: 数据 % 10000 // 1000
qian = index % 10000 // 1000
# 十位: 数据 % 100 // 10
ten = index % 100 // 10
# 个位: 数据 % 10
single = index % 10
# 如果万位和个位相等 并且 千位和十位相等的话 就是回文数
# 必须第十个回文数才打印
if wan == single and qian == ten:
# 是回文数
number += 1
# 3.保证只输出一个回文数
# 执行了一次print代码 ,说明我们找到了这个回文数
if number==10:
print(index)
# 找到了回文数 ,可以退出循环,不需要继续查找了
break
# 修改循环变量
index += 1
continue:
"""
把所有3位非回文数找出来
1.找到所有的三位数
100-999 while循环
2.判断数据是否是回文数
百位:数据//100
个位:数据%10
判断百位和个位是否相等
"""
# 1.找到所有的三位数
index = 100
while index < 1000:
# 2.判断数据是否是回文数
# 百位: 数据 // 100
hun = index//100
# 个位: 数据 % 10
single = index%10
# 修改循环变量
index += 1
# 判断百位和个位是否相等
if hun==single:
# 如果是回文数,不需要执行后续的print打印操作
continue
# 打印数据
print(index-1)
while循环嵌套:
"""
需求:打印1到5
"""
# index = 1
# while index < 6:
# print(index)
# index += 1
"""
需求:打印1到5 并且执行3次
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
"""
a = 0
while a < 3:
# 循环操作
index = 1
while index < 6:
print(index)
index += 1
a += 1
九九乘法表:
"""
需求:打印1到5
"""
# index = 1
# while index < 6:
# print(index)
# index += 1
"""
需求:打印1到5 并且执行3次
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
"""
a = 0
while a < 3:
# 循环操作
index = 1
while index < 6:
print(index)
index += 1
a += 1
2.for循环
"""
数据类型:int float bool complex str
int:1 float:1 bool:1 compex:1
str:'hello' h e l l o 字符
list
set
dict
tuple
"""
"""
任何容器都可以使用for循环遍历
任何容器都可以使用in和not in判断是否在容器中
"""
"""
打印字符串'hello world'中每一个字符 h 中 \n \t \0
# """
# str = 'hello world'
# # 打印str中每一个字符
# # ele普通变量 接收容器中的元素
# for ele in str:
# print(ele)
# print('结束')
"""------------------ in和not in ------------------"""
str = 'hello world'
# result = 'z' in str
result = 'z' not in str
print(result)
for循环中使用break和continue:
"""
需求:
1.打印字符串'hello world'中除了'w'之外的每一个元素
2.打印字符串'hello world'中第一个'o'出现之前(不包含第一个'o')的所有元素
3.打印字符串'hello world'中第三个'l'出现之前(不包含第三个'l')的所有元素
"""
str = 'hello world'
# 1.打印字符串'hello world'中除了'w'之外的每一个元素
# for ele in str:
# if ele == 'w':
# # 不需要打印操作,直接执行下一次循环
# continue
# # 打印之前做判断
# print(ele)
# 2.打印字符串'hello world'中第一个'o'出现之前(不包含第一个'o')的所有元素
# for ele in str:
# if ele=='o':
# break
# print(ele)
# 3.打印字符串'hello world'中第三个'l'出现之前(不包含第三个'l')的所有元素
# 记录当前有几个l
number = 0
for ele in str:
# 如果是第三个l,break
# 出现l,将数量添加1
if ele == 'l':
number += 1
# 判断当前是否是第三个l
if number == 3:
break
# 打印数据
print(ele)
range:
# 定义0到10区间 包含0 不包含10
# r1 = range(0,10)
# 如果区间从0开始,省略开始数据0
# r1 = range(10)
# 区间可以是负数吗?
# r1 = range(-5,10)
# 不支持小数区间
# r1 = range(1.2,2.3)
# r1 = range('a','z')
# 可以添加第三个参数:步长 跳过多少个数据
# 0 1 2 3 4 5 6 7 8 9
# r1 = range(0,10,3)
"""------------------ 遍历区间 ------------------"""
# for ele in r1:
# print(ele)
"""------------------ 获取区间中某一个元素 ------------------"""
# r1 = range(2,10)
# 想获取第三个数据 4
# 2 3 4 5 6 7 8 9
# 0 1 2 3 4 5 6 7
# 获取某一个元素
# ele = r1.__getitem__(2)
# ele = r1[2]
# print(ele)
"""------------------ 获取容器中元素个数:len ------------------"""
r1 = range(10)
# 获取r1中元素的个数
# r1Lenght = len(r1)
# print(r1Lenght)
str = 'hello world'
print(len(str))
for else:
str = 'hello world'
"""------------------ for else ------------------"""
# print('程序开始')
# for ele in str:
# print(ele)
# else:
# print('执行了else语句')
# print('程序结束')
"""------------------ for else continue ------------------"""
# continue 不影响else中代码的执行
# print('程序开始')
# for ele in str:
# if ele == 'l':
# continue
# print(ele)
# else:
# print('执行了else语句')
# print('程序结束')
"""------------------ for else break ------------------"""
# 只要执循环中行了break,else中的代码就不会再执行了
# print('程序开始')
# for ele in str:
# if ele == 'l':
# break
# print(ele)
# else:
# print('执行了else语句')
# print('程序结束')
# 会执行a 不会执行b
print('程序开始')
for ele in str:
if ele == 'z':
break
print(ele)
else:
print('执行了else语句')
print('程序结束')
判断密码是否合法练习:
"""
判断登录密码'hhew2383dW_fkf&E@^'是否合法
要求:
1. 密码必须是数字、字母(大小写都可以)、和下划线,否则不合法
2. 如果密码合法,就输出'密码合法,可以登录'
分析:
1.for循环遍历密码中每一个元素
2.判断每一个元素是否合法
容器:保存所有的数字 字母 _
每一个元素 是否在容器中 @
3.如果每一个元素都合法,说明密码合法
"""
"""------------------ 普通方案 ------------------"""
# str = 'hhew2383dW_fkf&E@^'
# # 1.for循环遍历密码中每一个元素
# # 2.定义容器:保存所有的数字 字母 _
# # str range
# container = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'
# # 合法密码个数
# number = 0
# for ele in str:
# # 2.判断每一个元素是否合法
# # 每一个元素 是否在容器中 @
# if ele in container:
# # 当前元素合法
# number += 1
# pass
# else:
# print('密码不合法')
# break
# # 3.如果每一个元素都合法,说明密码合法
# if number==len(str):
# print('密码合法')
"""------------------ 通过for else ------------------"""
str = 'hhew2383dW_fkfE'
# 1.for循环遍历密码中每一个元素
# 2.定义容器:保存所有的数字 字母 _
# str range
container = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'
for ele in str:
# 2.判断每一个元素是否合法
# 每一个元素 是否在容器中 @
if ele in container:
# 当前元素合法
pass
else:
print('密码不合法')
break
else:
print('密码合法')
# 3.如果每一个元素都合法,说明密码合法