Python的分支结构
if语句的使用
"""
example01 - 分支结构(选择结构)
代码中有多条执行路径,但是只有其中一条被执行
Author: Asus
Date: 2021/7/21
"""
username = input('用户名:')
password = input('密码:')
if username == 'admin' and password == 'Admin123':
print('登陆成功')
print('欢迎使用xxx系统!')
print('客服热线:400 - 800 - 8800')
else:
print('登陆失败!')
print('用户名或密码错误!')
print('程序结束,再见!')
扩展:导入getpass包,不能直接在PyCharm中运行,在PyCharm界面中找到Terminal并点击打开。操作如下图。
"""
example01 - 分支结构(选择结构)
代码中有多条执行路径,但是只有其中一条被执行
Author: Asus
Date: 2021/7/21
"""
import getpass
username = input('用户名:')
password = getpass.getpass('密码:')
if username == 'admin' and password == 'Admin123':
print('登陆成功')
print('欢迎使用xxx系统!')
print('客服热线:400 - 800 - 8800')
else:
print('登陆失败!')
print('用户名或密码错误!')
print('程序结束,再见!')
分支结构嵌套使用
嵌套的两种形式:if...else
和if...elif...else
f
(
x
)
=
{
3
x
−
5
,
x
>
1
x
+
2
,
−
1
≤
x
≤
1
5
x
+
3
,
x
<
−
1
f(x) = \begin{cases} 3x - 5, & x \gt 1 \\ x + 2 , & -1 \le x \le 1 \\ 5x + 3, & x \lt -1 \end{cases}
f(x)=⎩⎪⎨⎪⎧3x−5,x+2,5x+3,x>1−1≤x≤1x<−1
"""
example02 - 分段函数求值
3x - 5 , x > 1
f(x) 5x + 3 ,-1 <= x <= 1
x + 2 ,x < -1
分支结构可以嵌套,但要注意嵌套的深度,嵌套太深会影响代码可读性
代码块:保持相同缩进属于同一个代码块
Author: Asus
Date: 2021/7/21
"""
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
elif x < -1:
y = x + 2
else:
y = 5 * x + 3
print(f'f(x) = {y}')
说明:在Python之禅中有这么一句话:“Flat is better than nested”:提倡代码“扁平化”,因为嵌套结构的嵌套层次如果很多,会严重的影响代码的可读性,所以能使用扁平化结构时就不要使用嵌套结构。
Python的循环结构
循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in
循环,一种是while
循环。
for-in循环
range(m)
:产生0到m-1范围的整数。range(m,n)
:产生m到n-1范围的整数。注:n>m
range(m,n,r)
:产生m到n-1范围的整数,步长是r。注:n>m,r>0
range(m,n,-r)
:产生n+1到m的整数,步长是r。注:n<m,-r<0
"""
example03 - 循环结构 ---->for - in循环
Author: Asus
Date: 2021/7/21
"""
for i in range(1, 101, 3):
print(i, 'hello, world')
print(i, 'goodbye, world')
print('goodbye, world')
for i in range(51, 11):
print(i, 'hello, world')
print('hello, world')
for i in range(51, 11, -4):
print(i, 'hello, world')
for-in循环的例子
"""
learning02 - 1到100求和
Author: Asus
Date: 2021/7/21
"""
sum = 0
total = 0
sum1 = 0
for x in range(1, 101):
sum += x
print(sum)# 每一个结果都输出
# 1到100的偶数求和
for i in range(2, 101, 2):
total += i
print(total)# 只输出最后一个结果
# 1到100的奇数求和
for m in range(1, 101, 2):
sum1 += m
print(sum1)
while循环
while循环是通过判断产生的bool值来控制循环,True为继续循环,False则结束循环。
"""
example04 - while循环 --->不知道循环的次数
Author: Asus
Date: 2021/7/21
"""
# 输入两个正整数,找出他们的最大公约数
x = int(input('x = '))
y = int(input('y = '))
while y % x != 0:
x, y = y % x, x
print(x)
break和continue
break
:表示结束它所在的全部循环。
continue
:表示只结束本次循环。
"""
learning05 - 输入两个正整数,找出他们的最大公约数
Author: Asus
Date: 2021/7/21
"""
m = int(input('输入正整数m:'))
n = int(input('输入正整数n:'))
if m > n:
for x in range(n, 1, -1):
if m % x == 0 and n % x == 0:
print('最大公约数:', x)
break
else:
for x in range(m, 1, -1):
if m % x == 0 and n % x == 0:
print('最大公约数:', x)
break