第6讲 python 程序算法初步

1、求1000以内所有的水仙花数
思路:水仙花数是指一个n位数(n>=3),它的每个位上的数字n次幂之和等于他本身
#例如:153 = 13 + 53 + 3**3

#首先获取1000以内的三位数
i = 100
while i <1000:
#print(i)
#判断 i 是否水仙花数
#假设i的百位数是a,十位数b,个位数c
#求i的百位数
a = i // 100
#print(a)
#求i的十位数
b = (i - a * 100 )//10
#print(b)
#求i的个位数
c = i % 10
#print©
#判断水仙花数
if (a3 + b3 +c**3) == i:
print(i)
i += 1
答案:153、370、371、407

2、#获取用户输入的任意数,判断是否是质数
#什么是质数,只能被1 和 本身整除的数就是质数

num = int(input(‘请输入任意大于1的数:’))

###判断num是否质数
i = 2

#创建一个变量,来记录i是不是质数
flag = True
while i < num:

if num % i == 0: #证明不是质数
#print(num)
#进入循环,证明num不是质数
flag = False
i += 1
if flag:
print(‘是质数’)
else:
print(‘不是质数’)

3、控制台打印如下图形






##控制图形的高度
i = 0
while i < 5:

#控制宽度
j = 0
while j < 5:
print(’*’,end=’’)
j += 1
print()
i += 1
4、#控制台打印如下图形
*
**




#控制图形的高度
i = 0
while i < 5:

扫描二维码关注公众号,回复: 9065080 查看本文章

#控制宽度
j = 0
while j < i + 1:
print(’*’,end=’’)
j += 1
print()
i += 1

5、#控制台打印如下图形




**
*
#控制图形的高度
i = 0
while i < 5:

#控制宽度
j = 5
while j > i:
print(’*’,end=’’)
j -= 1
print()
i += 1

6、在控制台输出99乘法表,核心就是两层循环嵌套
11=1
1
2=2 22=4
1
3=3 23=6 33=9

i = 1
while i < 10:
j = 1
while j<=i:
print(j,’’,i,’=’,ij,’ ‘,end=’’)
j += 1
print()
i += 1

7、开发一个彩票小游戏,给用户9次机会,猜1-10 的10个数字,最终告诉用户猜的是否正确,需求是用户怎么猜都猜不对。
#思路:先拿到用户猜的所有数字,再随机一个数字,如果这个随机的数字没有出现在用户猜过的数字里面,那么这个数字就是我们要的答案
知识点:
continue:跳过当次循环。
break:结束循环,包括else。

import random
i = 1
#定义一个数组lst用来保存用户猜过的数字
lst = []
while i < 10:
number = int(input(‘请输入1-10之间的9个数字:’))
if number < 1 or number > 10:
print(‘不是1到10之间的整数,请重新输入’)
continue
lst.append(number)
print(‘对不起没有猜对’)
i += 1

while True:
number_x = random.randint(1,10)
#print(number_x)
if number_x in lst:
continue
else:
break
print(‘对不起,正确号码是:’,number_x)

8、求100以内的所有质数
##先找出2-100以内所有的数

i = 2
num = 0
while i < 100:
j = 2
flag = True
# print(i)
while j < i:
# 判断 i 是否能被j整除,能被j整除就不是质数
if i % j == 0:
flag = False
j += 1
if flag:
if i == 97:
print(i)
break
print(i,’,’,end=’’)
num += 1
i += 1
print(‘100以内有’,num,‘个质数’)

9、优化求质数的程序,通过合理使用break 和 5(平方根)
from time import *
#获取开始时间
start = time()
i = 2
num = 0
while i < 100000:
j = 2
flag = True
# 没必要判断所有<i的j,只需要判断到i的平方根即可
while j <= i
0.5:
# 判断 i 是否能被j整除,能被j整除就不是质数
if i % j == 0:
flag = False
#只要能被任何一个数整除,就是质数,就不再进行后面的数的验证
break
j += 1
if flag:
print(i,’,’,end=’’)
num += 1
i += 1
#获取结束时间
end = time()
print()
print(num,‘个质数,花费’,end-start,‘秒’)

发布了31 篇原创文章 · 获赞 0 · 访问量 364

猜你喜欢

转载自blog.csdn.net/weixin_38027481/article/details/101697224
今日推荐