Python—第3天—分支和循环结构
分支结构(选择结构)的例子
在Python中,要构造分支结构可以使用if
、elif
和else
关键字。所谓关键字就是有特殊含义的单词,像if
和else
就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名。下面的例子中演示了如何构造一个分支结构。
import getpass
username = input('用户名:')
# password = input('密码: ')
password = getpass.getpass('密码: ') # 遮住密码
if username == 'admin' and password == '123456':
print('登录成功')
else:
print('登录失败')
使用
password = getpass.getpass('密码: ')
点击Termiral,输入python 文件名.py
才能运行。它能遮住输入的密码。
Python中使用了缩进的方式来表示代码的层次结构,如果
if
条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以了。换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块,相当于是一个执行的整体。缩进可以使用任意数量的空格,但通常使用4个空格,强烈建议大家不要使用制表键来缩进代码。
分断函数求值
3x - 5, x > 1
f(x) = x + 2, -1 <= x <= 1
5x + 3, x < -1
分支结构可以嵌套,但一定要注意嵌套的深度,嵌套深度太深直接影响代码的可读性
代码块:保持相同缩进的代码就属于同一个代码块
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
elif x < -1:
y = 5 * x + 3
else:
y = x + 2
print(f'f(x) = {y}')
循环结构
循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in
循环,一种是while
循环。
for-in循环
打印100遍hello
for i in range(1, 101):
print(i, 'hello')
需要说明的是上面代码中的
range(1, 101)
可以用来构造一个从1到100的范围,当我们把这样一个范围放到for-in
循环中,就可以通过前面的循环变量x
依次取出从1到100的整数。当然,range
的用法非常灵活,下面给出了一个例子:
range(101)
:可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101)
:可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2)
:可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2)
:可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
计算1 + 2 + 3 + 4 + 5+ …+ 100 = ?
num = 0
for i in range(1, 101):
num += i
print(num)
实现1-100之间的偶数求和
total = sum(range(1, 101))
print(total)
# 1-100之间的和
total = 0
for i in range(2, 101, 2):
total += i
print(total)
# 1-100之间的偶数和
total = 0
for i in range(1, 101):
if i % 2 != 0:
total += i
else:
pass
print(total)
# 1-100间的奇数和
计算求1-100之间3或5的倍数的和
a = 0
for i in range(1, 101):
if i % 3 == 0 or i % 5 == 0:
a += i
print(a)
输入1—n,输出 n n^2 n^3 n^n
for i in range(1, 11):
print(f'{i:<10d}{i ** 2:<10d}{i ** 3:<10d}{i ** i:<10d}')
输入一个n,计算n!
a = int(input('输入一个整数'))
b = 1
for i in range(2, a + 1):
b *= i
print(f'{a}! = {b}')
随便输入两个正整数,得出它们的最小公约数
a = int(input('a = '))
b = int(input('b = '))
for i in range(a, 0, -1):
if a % i == 0 and b % i == 0:
print(i)
break
while循环
如果要构造不知道具体循环次数的循环结构,我们推荐使用while
循环。while
循环通过一个能够产生或转换出bool
值的表达式来控制循环,表达式的值为True
则继续循环;表达式的值为False
则结束循环。
a = int(input('a = '))
b = int(input('b = '))
while b % a != 0:
a, b = b % a, a
print(a)