Python基础-循环

                                       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.如果每一个元素都合法,说明密码合法

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值