Python入门笔记(六)

人生苦短 我用Python


逻辑运算符 and与 or运算

使用 and连接多个选择条件时:

  • 只有同时满足多个条件才能执行if后面的语句块
1
2
3
4
5
6
user_name=input('请输入用户名')
pwd=input('请输入密码')
if user_name=='root' and pwd=='password':
print('登录成功')
else:
print('用户名或密码不正确')

使用 or连接多个选择条件时:

  • 只要满足多个条件的一个,就可以执行if后的语句块
1
2
3
4
5
score=eval(input('请输入您的成绩:'))
if score<0 or score>100:
print('成绩无效')
else:
print('您的成绩为',score)

循环结构

遍历循环for

  • 语法结构
1
2
for 循环变量 in 遍历对象:
语句块
  • 遍历对象
    1. 字符串
    2. 文件
    3. 组合数据类型
    4. range()函数等
1
2
3
4
5
6
7
8
9
10
# 遍历字符串
for i in 'hello':
print(i)
# 输出为:
# h
# e
# l
# l
# o
######

对于range()函数,是一个产生[n,m)的整数序列,包含n不包含m

1
2
3
4
for i in range(1,11):
print(i) # 此时会得到1-10的输出结果
if i%2==0:
print(i,'是偶数') # 将range函数与if结合,输出偶数。

案例一

1
2
3
4
5
# 利用range函数与for循环计算1-10的累加求和
s=0 # 设置变量用来存储
for i in range(1,11):
s+=i # 等价于 s=s+i
print('1-10之间的累加和为:',s)

案例二

1
2
3
4
5
6
7
8
9
10
11
# 计算100-999之间的水仙花数
# ----------------------
# 3*3*3+5*5*5+1*1*1=153
# 形如153这样的数就是水仙花数
# ----------------------
for i in range(100,1000):
sd=i%10 # 获取个位上的数字
tens=i//10%10 # 获取十位上的数字
hundred=i//100 # 获取百位上的数字
if sd**3+tens**3+hundred**3==i:
print(i)

遍历循环的扩展模式

  • 语法结构
1
2
3
4
for 循环变量 in 遍历对:
语句块1
else:
语句块2

其中else语句只在循环正常结束后才执行
通常与break和continue语句一起使用

简单案例如下:

1
2
3
4
5
s=0 # 设置变量用来存储
for i in range(1,11):
s+=i # 等价于 s=s+i
else:
print('1-10之间的累加和为:',s)

结果不变,但程序逻辑不同。

无限循环while

  • 语法结构
1
2
while 表达式:
语句块
  • 执行流程
    • 当表达式的值为true时,执行语句块
    • 当表达式的值为false时,跳过语句块执行后边的代码

案例一

1
2
3
4
5
answer=input('今天有课吗?[y/n]') #  初始化变量
while answer=='y': # 条件判断
print('好好学习') # 语句块
answer=input('今天有课吗?[y/n]') # 改变变量
print('玩的开心') # 语句块

案例二

1
2
3
4
5
6
7
8
# 1-100之间的数求和
# ---------------
s=0 # 存储累加和
i=1 # 初始化变量
while i<=100:
s+=i # s=s+i
i+=1
print('1-100之间的累加和为',s)

无限循环的扩展

  • 语法结构
1
2
3
4
while 表达式:
语句块1
else:
语句块2

else语句只在循环结构之后才执行
通常与break和continue一起使用

1
2
3
4
5
6
7
8
9
# 1-100之间的数求和
# ---------------
s=0 # 存储累加和
i=1 # 初始化变量
while i<=100:
s+=i # s=s+i
i+=1
else:
print('1-100之间的累加和为',s)

使用无限循环模拟实现登录

1
2
3
4
5
6
7
8
9
10
11
12
13
i=0 
while i<3:
user_name=input('请输入用户名:')
pwd=input('请输入密码:')
if user_name=='Paneer' and pwd=='password':
print('登录成功')
i=8
else:
if i<2:
print('用户名或密码错误,您还有',2-i,'次机会')
i+=1
if i==3:
print('对不起,账号密码连续错误三次,请稍后再试')