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

2017-12-09  本文已影响18人  伯wen

注意: 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
i = 0
sum = 0
while i < 10:
    i += 1
    sum += i
else:    # 当while的循环条件不符合时, 走else分支
    print(sum)

打印: 55
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=" ")
打印: 张三 李四 王五 赵六 
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
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:
    # 什么都没写

此时代码运行会直接报错
age = 10
if age < 18:
    pass

此时代码会正常运行
while True:
    pass

for i in range(1, 10):
    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("您输入的数字小了, 应该大一点")
上一篇下一篇

猜你喜欢

热点阅读