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} 是水仙花数")
-
打折活动
输入一个购物的应付价钱, 判断实付金额
-
满199 减30
-
满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%
个人所得税税率表(工资、薪金所得适用)
级数 每月应纳税所得额 税率(%) 速算扣除数:
-
全月应纳税额不超过1500元的,税率为3%, 速算扣除数 0.
-
全月应纳税额超过1500元至4500元的部分,税率为10%。 速算扣除数 105 , 6000 - 3500 = 2500 * 0.1 = 250 - 105 = 145.
-
全月应纳税额超过4500元至9000元的部分,税率为20%。
-
全月应纳税额超过9000元至35000元的部分,税率为25%,
-
全月应纳税额超过35000元至55000元的部分,税率为30%,
-
全月应纳税额超过55000元至80000元的部分,税率为35%。
-
全月应纳税额超过80000的部分,税率为45%。
-
计算个人所得税, 输入一个月工资, 计算所交税. 最大不超过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("你还没有资格交税呢!")