i = 100
while i < 1000:
# 控制变量i为100到1000内的数
a = i // 100
# a为数字i的百位数上的数字
b = (i - a * 100)//10
# b为数字i的十位数上的数字
c = i % 10
# c为数字i的个位上的数字
if i == a**3 + b**3 + c**3
# 判断i是否为水仙花数,如果符合水仙花数的要求就在下面打印出 :
print(i)
i+=1
1.3质数判断
num = int(input('请输入你所要查询的数:'))
i = 2
# 质数为只能被1和自身整除的数,所以从2开始判断是否符合条件
while i < num:
if num % i == 0:
# 判断从2开始所有比i小的数是否能整出i
print('不是质数')
# 如果可以整除就打印不是质数
i+=1
break
# break用来终止循环,如果一个数可以被第一次整除就肯定不是质数,没必要再判断能否被别的更大的数整除
else:
print('是质数')
break
# 如果if条件不通过即为质数,打印出是质数
i+=1
1.4 打印乘法表
i = 1
while i <=9:
# 外循环控制行数,乘法表总共九行
j = 1
while j<i+1:
# 内循环控制列数,乘法表每一行列数依次增加,而且前面的数字j小于等于后面的苏子i
print(r'j*i=',j*i,' ',end='')
# 使用“r”转义符,将前面的“i*j”按字符形式打印出来,后面的为计算后的结果打印出来
j+=1
i+=1
print()
# print()用来每打印完一行后换行
1.5猜数字游戏
lst = []
# 先定义一个空的列表
number1 = list(range(1,11))
# 将数字1到10放入列表number1中
i = 0
while i <9:
# 设置循环次数,为9次
num = int(input('请输入你猜测的数字:'))
# 输入数字num
if num not in lst:
# 判断数字是否在空列表lst中
lst.append(num)
# 如果数字没在列表lst中,将输入的数字储存到列表lst中
print('对不起,猜测错误')
# 不管猜的数字是什么,直接打印对不起,猜测错误
i+=1
else:
print('数字重复')
# 如果猜的数字在猜过的数字当中,提醒玩家数字重复,不计入循环次数
for i in number1:
if i not in lst:
# 使用 in,not in 判断在number1当中而没在lst中的数字
print('正确答案是',i)
# 打印出不同的数字
1.6通过找10000内的质数研究优化
start = time()
# 使用time()函数,记录代码执行的开始时间
i = 2
# 先找到从2到10000内所有的数字
while i < 10000 :
flag = True
# 设置一个flag变量,并将初值赋值为True
j = 2
# 质数为只能被1和自身整除的数,所以从2开始判断是否符合条件
while j<i:
# 第一次优化,将 j<i变为j < i**0.5,一个数如果可以开平方,就可以仅仅判断平方根之前的数是否可以整除就行,减少了运算量
if i % j ==0:
flag = False
# 如果i可以被j整除就将flsg的值改为
#break 第二次优化,break用来终止循环,如果一个数可以被第一次整除就肯定不是质数,没必要再判断能否被别的更大的数整除
j+=1
if flag:
print(i)
# pass第三次优化使用pass替换print(i),不打印质数i
i+=1
end = time()
# 使用time()函数,记录代码执行的结束时间
print(end-start)
# 计算出执行整个代码所需的时间,用时间进行对比,反映代码的优化效果