【03】Python:分支和循环

写在前面的话数组

 

在写代码的时候,咱们的代码不可能老是一行一行语句的堆叠,有些时候咱们须要对一个事物进行判断,或者很大一组数据须要循环挨个处理。这些不可能让咱们一步一步的去写。因此有了接下来的分支结构和循环结构。dom

 

 

分支结构函数

 

语法格式:spa

if 条件1:
    执行1
elif 条件2:
    执行2
else:
    执行3

 

示例:code

x = 3
y = 2

if x == 1:
    print("这是第一种状况")
elif x == 2:
    print("这是第二种状况")
else:
    if y == 1:
        print("这是第三种状况")
    else:
        print("这是第四种状况")

固然,elif else 语句都不是必须,在面对复杂的需求的时候,咱们也能进行嵌套。对象

 

实例:blog

1. 判断成绩等级,90 以上 A,80 - 89 为 B,70 - 79 为 C,60 - 69 为 D,60 如下为 E。索引

# 输入成绩
score = float(input("请输入成绩:"))

# 判断成绩
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "E"

print("成绩为:%s" % grade)

结果:游戏

 

 

三元运算符input

 

三元运算符其实际就是将简单的 if 写成一个语句,如:

x = 3

if x == 1:
    y = 1
else:
    y = 0

咱们可使用三元运算符表示:

x = 3
y = 1 if x == 1 else 0

固然咱们还能够写更复杂的逻辑,可是不推荐,由于咱们写代码有个前提,那就是便于阅读,越简单易读越好。

 

 

循环结构

 

在循环结构中,主要有两种,一种是 while,一种是 for in,两种循环若是要说区别,可能更多的是使用场景的区别,

for in,通常对一个相似数组这样的集合进行一个一个迭代循环。

while,通常用于某种特殊的循环,带有判断的意味,咱们能够理解为 当 xxx 的时候怎么样

语法格式:

# for 循环
for i in 可迭代对象:
    执行
    
# while 循环
while 条件:
    执行

 

实例:

1. 输出全部水仙花数:三位数,个位的三次方 + 十位的三次方 + 百位的三次方 = 数字自己

注意:咱们这里会用到生成连续数字的内置函数 range。

range(101):生成 0 - 100 的数组。

range(100, 1000) :则会生成 100 - 999 的数组。

range(1, 101, 2):获取 0 - 100 之间的奇数,2 表明跨度。

for num in range(100, 1000):
    if ((num // 100) ** 3 + ((num % 100) // 10) ** 3 + (num % 10) ** 3) == num:
        print(num)

结果:

 

2. 求 0 - 100 的偶数和:

sum = 0

for num in range(0, 101, 2):
    sum += num
print("0 - 100 的偶数和为:%d" % sum)

结果:

 

3. 猜数字游戏:用户有 3 次机会,猜 1 - 10 的随机数。猜错会有范围提示。

注意:这里会用到一个内置函数 random,生成随机数。

import random

# 用户次数
times = 3
# 生成随机数
random_num = random.randint(1, 10)

# 判断
while times:
    user_num = int(input("请输入你的猜测:"))
    if user_num > random_num:
        print("你猜大了")
    elif user_num < random_num:
        print("你猜小了")
    else:
        print("你猜对了")
        break
    times -= 1
    print("你还有 %s 次机会!" % times)

结果:

 

4. 打印 99 乘法表:

for x in range(1, 10):
    for y in range(x, 10):
        print("%sx%s=%s" % (x, y, x*y), end="\t")
    print("")

结果:

这里有个知识点,print 结束默认的符号是换行,咱们可使用 end= 指定结尾的符号。

 

 

break 和 continue

 

这二者都用于循环中,可是二者有着明显的差异:

break,直接结束当前层级的循环,无论你执行到那里。

continue,结束本轮循环,进入下一轮。

看个示例:

for i in (1, 2, 3, 4, 5):
    if i == 2:
        continue
    if i == 4:
        break
    print(i)

结果如图:

能够明显看到,当 i == 2 的时候,这一轮循环被跳过了,因此没有打印 i 的值,当 i == 4 的时候,整个循环都被结束了,因此后面的都再也不打印。

 

 

enumerate

 

枚举,对一个可迭代对象将其组成索引加数据的序列。

示例:

L = ['a', 'b', 'c']

for i in enumerate(L, 1):
    print(i)

结果:

 

 

小结 

 

本节其实主要是逻辑处理语句,包括判断,循环等。其中包括了两个内置函数:range 和 random。

若是真的只讲几种语法,很简单,结合实例查漏补缺。 

相关文章
相关标签/搜索