美文网首页
Python基础(二): 分支循环和Pass语句

Python基础(二): 分支循环和Pass语句

作者: 伯wen | 来源:发表于2017-12-09 15:16 被阅读18次

注意: Python以缩进来判断代码块

if分支

单分支判断: if

age = 20
if age >= 18:
    print("您已经成年")    
打印结果: 您已经成年

age = 17
if age >= 18:
    print("您已经成年")    
没有打印

双分支判断: if else

age = 16
if age >= 18:
    print("您已经成年")
else:
    print("您没有成年")
打印结果: 您没有成年

age = 20
if age >= 18:
    print("您已经成年")
else:
    print("您没有成年")
打印结果: 您已经成年

多分支判断: if elif else

num = 50

if num < 10:
    print("<10")
elif num < 100:
    print("<100")
else:
    print(">=100")

打印: <100

循环

while循环

  • 格式
while 条件:
    循环满足时的执行代码
    ...
  • 示例代码
i = 0
while i < 5:
    print("社会我顺哥, 人狠话不多 - %d" % i)
    i += 1

打印: 
社会我顺哥, 人狠话不多 - 0
社会我顺哥, 人狠话不多 - 1
社会我顺哥, 人狠话不多 - 2
社会我顺哥, 人狠话不多 - 3
社会我顺哥, 人狠话不多 - 4
  • while else: while条件不符合时, 走else分支
i = 0
sum = 0
while i < 10:
    i += 1
    sum += i
else:    # 当while的循环条件不符合时, 走else分支
    print(sum)

打印: 55
  • break: 跳出当前循环, 通过break打断循环时, 不会再走else分支
i = 0
sum = 0
while i < 10:
    i += 1
    sum += i
    if i == 5:
        break
else:
    print(sum)
    print("循环结束")

此时代码中不会在调用else分支

for循环

  • 遍历字符串
notice = "社会我顺哥,人狠话不多"

for c in notice:
    print(c, end=" ")
打印: 社 会 我 顺 哥 , 人 狠 话 不 多 
  • 遍历集合
list = ["张三", "李四", "王五", "赵六"]

for name in list:
    print(name, end=" ")
打印: 张三 李四 王五 赵六 
  • for else
    • 当for循环执行完毕, 会执行else中代码
    • 如果for循环中途被打断, 不会执行else中代码
list = ["张三", "李四", "王五", "赵六"]

for name in list:
    print(name, end=" ")
else:
    print("循环结束")
打印: 张三 李四 王五 赵六 循环结束
list = ["张三", "李四", "王五", "赵六"]

for name in list:
    print(name, end=" ")
    break
else:
    print("循环结束")
打印: 张三     # for循环被break打断, 不会执行else中代码
  • 案例: 反转字符串
notice = "hellow, world"

result = ""
for c in notice:
    result = c + result        // 拼接在第一位置

print(result)      # 打印: dlrow ,wolleh
  • 案例: 打印1-100之间的所有偶数
range = range(1, 101)

for num in range:
    if num % 2 == 0:
        print(num)

break

  • 作用: 打断整个循环体, 跳出循环
for i in range(1, 11):
    if i == 6:
        break
    print(i)
打印:
1
2
3
4
5

continue

  • 作用: 跳过本次循环, 继续下次循环
for i in range(1, 6):
    if i == 3:
        continue
    print(i)
打印:
1
2
4
5
  • 小练习
# 输入两个数, 求两个数的和, 求和后, 重新输入计算
# 计算后, 让用户选择是否继续计算
# 两个数, 只要有一个数大于100, 重新开始输入

while True:
    num1 = input("请输入第一个数:\n")
    num1 = float(num1)
    num2 = input("请输入第二个数:\n")
    num2 = float(num2)

    if num1 > 100 or num2 > 100:
        print("输入的数错误, 请重新开始输入")
        continue

    print("两个数的和是: ", num1 + num2)

    isQ = input("是否退出计算: (q: 表示退出, 其他表示继续)\n")
    if isQ == "q":
        break
# 循环嵌套分支: 打印1-100之间所有能被3整除的整数

for i in range(1, 101):
    if i % 3 == 0:
        print(i)
# 循环嵌套: 打印99乘法表

for i in range(1, 10):
    for j in range(1, i + 1):
        print("%d * %d = %d" % (j, i, i * j), end="  ")
    print("\n")

pass语句

  • 作用: 在分支, 循环, 函数中, 当我们没有写代码块的实现部分时, 直接运行会报错
age = 10
if age < 18:
    # 什么都没写

此时代码运行会直接报错
  • 此时, 可以使用pass语句表示此处代码块没有任何内容
age = 10
if age < 18:
    pass

此时代码会正常运行
  • 循环中使用pass
while True:
    pass

for i in range(1, 10):
    pass
  • 函数中使用pass
def run():
    pass

上述代码中, 如果去掉pass, 程序就会报错, pass的作用就是表示这里是空实现, 没有任何代码

循环分支综合案例

  • 打印三位数中所有的水仙花数:
# 水仙花数: 一个三位数, 百位数的三次方 + 十位数的三次方 + 个位数的三次方 = 三位数本身

for num in range(100, 1000):
    a = num // 100
    b = num % 100 // 10
    c = num % 10
    if a ** 3 + b ** 3 + c ** 3 == num:
        print(num)
打印:
153
370
371
407
  • 用户输入一个三位数, 判断是否是水仙花数
while True:
    num = input("请输入一个三位数, 用来判断是否是水仙花数\n")
    num = int(num)

    if not (100 <= num <= 999):
        print("数字不是三位数, 重新开始")
        continue

    a = num // 100
    b = num % 100 // 10
    c = num % 10

    if a ** 3 + b ** 3 + c ** 3 == num:
        print("%d 是一个水仙花数" % num)
    else:
        print("%d 不是一个水仙花数" % num)

    isQ = input("是否继续输入, (q: 退出, 其他继续)\n")
    if isQ == "q":
        break
  • 固定一个数字, 然后让用户猜
    • 如果相等, 退出程序
    • 如果大了, 提示输入数字大了
    • 如果小了, 提示输入数字小了
    • 只要不相等, 就一直让用户输入
num = 384

while True:
    result = input("请输入您认为的给定数值:\n")
    result = float(result)
    if num == result:
        print("猜对了")
        break
    elif result > num:
        print("您输入的数字大了, 应该小一点")
    else:
        print("您输入的数字小了, 应该大一点")

相关文章

网友评论

      本文标题:Python基础(二): 分支循环和Pass语句

      本文链接:https://www.haomeiwen.com/subject/gcsuixtx.html