Python编程基础篇之条件判断和循环控制
一、顺序执行
二、程序主入口
三、条件判断
1. 条件判断
2.条件判断嵌套
四、循环控制
1. 循环控制介绍
2. while循环表达式
i = 1 # 初始化行
while i <= 3: # 控制外层循环
j = 1 # 初始化列
while j <= i: # 控制内层循环
print('*', end='') # 打印每行的*
j += 1 # 列自增量,保证内层循环有边界
print() # 换行
i += 1 # 行自增量,保证外层循环有边界
3. for循环表达式
注意:
for循环中的break和continue语句与while循环中的作用完全一致。
练习
1. 求1000以内所有的水仙花数。水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
def get_Narcissistic_number():
i = 100
while i < 1000:
# 法一:利用数学运算分别获取百位数、十位数、个位数
# hundred_digit = i // 100
# ten_digit = i // 10 % 10
# single_digit = i % 100 % 10
# if i == hundred_digit ** 3 + ten_digit ** 3 + single_digit ** 3:
# print(f'{i}是水仙花数')
# 法二:将数字i强转为字符串分别获取百位数、十位数、个位数
hundred_digit = int(str(i)[0])
ten_digit = int(str(i)[1])
single_digit = int(str(i)[2])
if i == hundred_digit ** 3 + ten_digit ** 3 + single_digit ** 3:
print(f'{i}是水仙花数')
i += 1
if __name__ == '__main__': # 程序主入口
get_Narcissistic_number()
2. 打印 9x9乘法表
def multiple_table():
i = 1
while i <= 9:
j = 1
while j <= i:
print(f'{i} x {j} = {i * j}\t', end='')
j += 1
print()
i += 1
if __name__ == '__main__':
multiple_table()
3. 获取用户输入的任意数,判断其是否是质数?
def is_prime_number(n):
i = 2
while i < int(n/2+1):
if n % i == 0:
print('该数不是质数')
break
else:
i += 1
else: # else从句用于判断质数
print('该数是质数')
if __name__ == '__main__':
n = eval(input('请任意输入一个阿拉伯数字:'))
is_prime_number(n)
4. 猜拳游戏
• 出拳 玩家:手动输入 电脑:随机输入
• 判断输赢: 玩家获胜 电脑获胜 平局
import random
def guess_game(n):
r = random.randint(1, 5)
print(f'玩家输入的是{n},电脑输入的是{r}')
if n > r:
print('玩家获胜')
elif n == r:
print('平局')
else:
print('电脑获胜')
if __name__ == '__main__':
n = eval(input('请输入一个1到5的阿拉伯数字:'))
guess_game(n)