Python基础第6讲 - 条件控制语句练习
程序员文章站
2022-05-28 14:24:14
...
练习1 求1000以内所有的水仙花数
水仙花数 指的是一个n位数(n>=3) 它的每个位数是数字的n次幂之和等于它本身 13 + 53 + 3**3 = 153
获取1000以内所有的三位数
i = 100
while i < 1000:
# 假设 i的百位数是a,十位数b,十位数c
# 求百位数
a = i // 100
# 求十位数
b = (i - a * 100) // 10
# 求各位数
c = i % 10
# print(i,a,b,c)
# 判断i是否水仙花数
if a**3 + b**3 + c**3 == i:
print(i)
i += 1
print('-'*50)
---------------------------------------------------------------
练习2 获取用书输入的任意数判断是否是质数
什么是质数:只能被1和本身整除的数 2 3 5 7 11 13
# 获取用户输入的任意数
num = int(input('输入一个任意大于1的整数:'))
# 定义一个变量
i = 2
# 创建一个标记 用来记录num是否是质数 默认是质数
flag = True
while i < num:
# print(i)
# 如果这个条件成立,则证明num一定不是质数
if num % i == 0:
# 一旦进入这个循环 则证明num不是质数
flag = False
i += 1
if flag:
print(num,'是质数')
else:
print(num,'不是质数')
---------------------------------------------------------------
循环嵌套
在这里插入代码片练习2:在控制台输出如下图形
# ******
# ******
# ******
# ******
# ******
# 外层循环控制的是高度(列),内层循环控制的是宽度(行)
i = 0
# 外层循环控制的是高度
while i < 5:
# 内层循环控制的是宽度
j = 0
while j < 5:
print('*',end='')
j += 1
print()
i += 1
print('-'*50)
# ---------------------------------------------------------------
# 在控制台输出如下图形
# * i = 0 j < 1 j< i + 1
# ** i = 2 j < 2 j< i + 1
# *** i = 2 j < 3 j< i + 1
# **** i = 3 j < 4 j< i + 1
# ***** i = 4 j < 5 j< i + 1
i = 0
while i < 5:
j = 0
while j< i + 1:
print('*',end='')
j += 1
print()
i += 1
---------------------------------------------------------------
练习3:控制套打印99乘法表
# 1*1=1
# 1*2=2 2*2=4
# ···· 9*9=81
# 创建一个外层循环的高度
i = 0
while i < 9:
i += 1
# 创建一个内层循环来控制图形的宽度
j = 0
while j < i:
j += 1
print(f'{j}*{i}={j*i}',end=' ')
print()
---------------------------------------------------------------
练习四:猜数字游戏 随机 1 - 10数字,猜对正确,如果没有猜对错误
# 给用户9次机会,最终结果一次都猜不对
# 1 2 3 4 5 6 7 8 9 10 9次机会
# 思路:可以先拿到用户猜过的数字,我可以随机一个数字去和用户猜的数字作比对,
# 如果这个循环的额数字没有在用户猜过的数字当中,那么这个数字是我需要的答案
# continue break
# continue可以跳过档次循环
# # break 可以立即退出循环,包括else
# i = 0
# while i < 6:
# i += 1
#
# if i == 2:
# break
# print(i)
# else:
# print('hello')
import random
# 定义一个列表, 目睹:用来存储用户的数字
lst = []
i = 0
while i < 9:
number = int(input('请输入1-10的数字:'))
# 把用户猜过的数字追加到列表中
lst.append(number)
print('对不起,你没有猜对')
i += 1
while True:
number_x = random.randint(1,10) #1<= x <=10
if number_x in lst:
continue
else:
break
print('正确号码是:',number_x)
--------------------------------------------
练习5:求100以内所有的质数 (优化后)
from time import *
# 获取程序开始的时间 经验 性能
number1 = int(input('输入一个数字:'))
start = time()
i = 2
while i <= number1:
flag = True
j = 2
while j <= i ** 0.5:
if i % j == 0:
flag = False
# 一旦进入判断证明i根本不是质数,所以内层循环根本没有必要继续执行
break
j += 1
if flag:
# print(i)
pass
i += 1
# 获取程序结束时间
end = time()
# 计算程序执行的时间
print('程序话费了:',end - start,'秒')
下一篇: 豆粉的功效与作用都有哪些?