1.6循环语句

1.for循环
# range() 函数python内置函数, 指定一个循环范围.
# 打印 从 0 - 10 的数,
# range(0, 11)  这个函数取前边, 不取后边, 这个范围是 左闭右开 类似区间: [0, 11)
for i in range(0, 11):
    print(i)

# range() 里面 参数(函数()中填的数据叫参数)只填一个.  默认从0开始循环
for i in range(11):
    print(i)

# range(开始数字, 结束数字, 循环方法) 指定范围要从小到大, 如果从大到小指定范围, 后边填上第三个参数, 指定一个负数.
for n in range(10, -10, -2):
    print(n)

# 循环步数, 隔几个步数输出一个
for n in range(1, 100, 5):
    print(n)

# 循环打印字符串, 循环字符串, 会打印出每一个字符.
string = "谈笑间, 樯橹灰飞烟灭!"
for s in string:
    print(s)
print("-----------------------")
# 字符串变量后 [开始位置(默认为0):结束位置(默认是最后一个)] 可以切割字符串, 按照一定的长度对字符串进行切割.

print(string[:3])
for s in string[:3]:
    print(s)
print("--------------------------")
  • 循环中的关键字
word = "大家为中华之崛起而读书."
# 1. break 关键字: 用于终止整个for/ while循环.
for w in word:
    # 判断循环是走到哪里了, 走到  之  停止.
    if w == "之":
        break
    print(w)
# 2. continue 关键字: 用于跳过某次循环, 其他循环会执行完毕.
for w in word:
    # 判断, 当 w 的值为 "之" 跳过这次循环, 进行下一次.
    if w == "之":
        continue
    print(w)

print("{}*{}".format(3.14, 4))
2.while循环
  while循环结构:
        定义变量
        while 判断条件(对变量进行判断):
            子语句(代码块)
            变量递增/递减
# num = 0 起始值
num = 0
# while 后跟判断条件, 符合条件则循环, 不符合则结束循环.
# 当 num <= 100 条件成立时  即: True
while num <= 100:  # 当num 加到101时 不符合条件结束循环
    # num 加一.
    num += 1
    if num == 10:
        continue
    print(num)

# 死循环, 一直符合条件, 无限循环, 造成内存溢出.
# 注意不要用死循环, 循环一定有结束条件.
# while True:
#     print("我错了!")

# 总结: for循环和while循环的区别
#    1. for循环注重循环次数, while循环注重循环的条件
#    2. for循环能实现的问题, while循环可以实现
#    while循环可以实现的条件, for 不一定能实现.
3.判断循环案例
  • 打印99乘法表
# 图形一
for n in range(1, 10):
    for m in range(1, n + 1):
        print(f"{n} x {m} = {n*m}\t", end="")
    print("")

print("\n\n")
# 图形二
for n in range(1, 10):
    for i in range(n - 1):
        print(f"        \t", end="")
    for m in range(1, 10):
        s = n * m
        if n <= m:
            print(f"{n} x {m} = {s}\t", end="")

    print("")
  • 打印出斐波那契数列

    F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

    ​ 第一位数 0

    ​ 第二位数 1

    ​ 第三位数 = 第一位数 + 第二位数

    ​ …

    ​ 第n位数 = 第n-1位数 + 第n-2位数

# 第一位是 0 , 第二位是 1.
# fn_2 前第二个 , fn_1 前一个
fn_2, fn_1 = 0, 1
# range(100) 默认从0开始 到99 循环100次
for i in range(1000):
    # fn 数列, 前两个数之和
    fn = fn_1 + fn_2
    print(fn)
    # 交换数值, fn_2 = fn_1     fn_1 = fn
    # 将fn_1的 值赋给 fn_2
    fn_2 = fn_1
    # 把fn(第三个值, 第一个 + 第二个计算出的值) 给 前一个数, fn_1.
    fn_1 = fn
    # fn_2, fn_1 = fn_1, fn

  • 判断水仙花数

判断输入的数是否是水仙花数(是一个三位数,个位,十位,百位的立方 和 等于这个数)

# 循环100, 1000之间的三位数, 判断每一个数是不是水仙花数.
for number in range(100, 1000):
    # 第一个数 // 商 余数: 二三位
    one = number // 100  # 4
    two_three = number % 100  # 17
    # two_three   17
    two = two_three // 10  # 1
    three = two_three % 10  # 7
    if one**3 + two**3 + three**3 == number:
        print(f"{number} 是水仙花数")
  • 打折活动

    输入一个购物的应付价钱, 判断实付金额

    1. 满199 减30

    2. 满399 减60
      3. 满500 8折优惠
      4. 满800 7.5折优惠

# 设置一个变量, 就是钱
#  小数 < x < 大数,  注意 不要写成   x > 小数  and(不提倡这样写) x < 大数(这样写没有错)
money = 560   # $(美刀) ¥(人民币)
if 0 < money < 199:
    print("您实付金额是: {}".format(money))
elif 199 <= money < 399:
    # pay 支付
    pay = money - 30
    print("您实付金额是: {}".format(pay))
elif 399 <= money < 500:
    pay = money - 60
    print("您实付金额是: {}".format(pay))
elif 500 <= money < 800:
    pay = money * 0.8
    print("您实付金额是: {}".format(pay))
elif money >= 800:
    print("您实付金额是: {}".format(money * 0.75))
else:
    print("输入有误!")
  • 判断月份

    输入一个 月份, 输出对应季节的诗句, 例如: 输入12月, 输出, 忽如一夜春风来, 千树万树梨花开. 注意诗句符合季节.

while True:
    month = int(input("请输入的月份: "))
    while month < 1 or month > 12:
        month = int(input("输入有误! 请重新输入的月份: "))

    if month == 1 or month == 2 or month == 3:
        print(f"{month} 月是春季, 请欣赏古诗:")
        print("""
                    《钱塘湖春行》
                    【唐】白居易
            孤山寺北贾亭西,水面初平云脚低。
            几处早莺争暖树,谁家新燕啄春泥。
            乱花渐欲迷人眼,浅草才能没马蹄。
            最爱湖东行不足,绿杨阴里白沙堤

        """)
    elif month == 4 or month == 5 or month == 6:
        print(f"{month} 月是夏季, 请欣赏古词:")
        print("""
                    西江月 夜行黄沙道中
                         辛弃疾
                明月别枝惊鹊,清风半夜鸣蝉。
                稻花香里说丰年,听取蛙声一片。
                七八个星天外,两三点雨山前。
                旧时茅店社林边,路转溪桥忽见。

        """)
    elif month == 7 or month == 8 or month == 9:
        print(f"{month} 月是秋季, 请欣赏古诗:")
        print("""
                    枫桥夜泊
                    唐:张继
            月落乌啼霜满天,江枫渔火对愁眠。
            姑苏城外寒山寺,夜半钟声到客船。

        """)
    else:
        print(f"{month} 月是冬季, 请欣赏古诗:")
        print("""
                     江雪
                   唐代:柳宗元
            千山鸟飞绝,万径人踪灭。
            孤舟蓑笠翁,独钓寒江雪。

               """)
  • 计算个税

    某市月工资薪金超过3500元以上的部分才征收个人所得税。

    应交个人所得税(4400-3500) * 3%

    个人所得税税率表(工资、薪金所得适用)

    级数 每月应纳税所得额 税率(%) 速算扣除数:

    1. 全月应纳税额不超过1500元的,税率为3%, 速算扣除数 0.

    2. 全月应纳税额超过1500元至4500元的部分,税率为10%。 速算扣除数 105 , 6000 - 3500 = 2500 * 0.1 = 250 - 105 = 145.

    3. 全月应纳税额超过4500元至9000元的部分,税率为20%。

    4. 全月应纳税额超过9000元至35000元的部分,税率为25%,

    5. 全月应纳税额超过35000元至55000元的部分,税率为30%,

    6. 全月应纳税额超过55000元至80000元的部分,税率为35%。

    7. 全月应纳税额超过80000的部分,税率为45%。

    8. 计算个人所得税, 输入一个月工资, 计算所交税. 最大不超过80000

salary = 9000
while True:
    if salary > 3500:
        pay = salary - 3500
        if pay <= 1500:
            print("您的纳税金额是: %s", pay * 0.03)
        elif 1500 < pay <= 4500:
            s = 1500 * 0.03 + (pay - 1500) * 0.1
            print(f"您的纳税金额是: {s}")
        elif 4500 < pay <= 9000:
            s = 1500 * 0.03 + 4500 * 0.1 + (9000 - 4500) * 0.2
            print(f"您的纳税金额是: {s}")
        elif 9000 < pay <= 35000:
            s = 1500 * 0.03 + 4500 * 0.1 + 4500 * 0.2 + (35000 - pay) * 0.25
            print(f"您的纳税金额是: {s}")
    else:
        print("你还没有资格交税呢!")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值