44.嵌套for循环输出金字塔
rows = 8
for i in range(1,rows+1):
for j in range(rows-i,0,-1):
print(" ",end="\t")
num1 = 1
for k in range(1,i+1):
print("%s"%num1,end="\t")
num1 *= 2
num2 = num1
num2 //= 2
for k in range(2,i+1):
print("%s"%(num2//2),end="\t")
num2 //= 2
print()
![](https://img-blog.csdnimg.cn/direct/2b0b97ccfc0347b19c7720800c289934.png)
45.显示2-1000之间的素数,每8个换行
count = 0
for i in range(2,1001):
j = 2
while 1:
if i % j != 0:
j = j + 1
else:
break
if j == i :
print(i,end=" ")
count += 1
if count == 8:
print()
count = 0
![](https://img-blog.csdnimg.cn/direct/0231c556e18443c3ad4b0cd29d400f2a.png)
46.求pi的近似值
import math
sum = 0
n = int(input("请输入i的值:"))
for i in range(1,n+1):
sum += ((-1)**(i+1)/(2*i - 1))
print(sum*4)
![](https://img-blog.csdnimg.cn/direct/36523d255a7a47f6ba2db98e1dc28673.png)
47.求数列e的近似值
e = 1
item = 1
n = int(input("请输入i的值:"))
for i in range(1,n+1):
item *= i
e += 1/item
print(e)
![](https://img-blog.csdnimg.cn/direct/79d00d55020842b09acaa5dc6195fa5e.png)
48.求小于10000的完全数
for i in range(1,10001):
sum = 0
for j in range(1,i):
if i % j == 0:
sum = sum + j
else:
continue
if (sum == i):
print(i)
![](https://img-blog.csdnimg.cn/direct/8fdb6e45208c480b80bd1bbe1e30eba8.png)
49.剪刀石头布,两局定胜负
import random
you_win = 0
you_lose = 0
while you_win < 2 and you_lose < 2:
your = int(input("请输入(0-剪刀、1=石头、2-布):"))
ai = random.randint(0,2)
if your == 0 and ai ==2 or your == 1 and ai == 0 or your == 2 and ai ==1:
print("你赢了一局")
you_win += 1
elif your == 2 and ai == 0 or your == 0 and ai == 1 or your == 1 and ai == 2:
print("你输了一局")
you_lose += 1
else:
print("平局")
if you_win < 2 and you_lose < 2:
print("再来一局")
elif you_win == 2:
print("game over,你赢了")
elif you_lose == 2:
print("game over,你输了")
else:
continue
![](https://img-blog.csdnimg.cn/direct/ae13f1855be74bd98e7af41174678ae5.png)
50.输入一些数求最大数和出现次数
max = 0
count = 0
while 1:
num = int(input("请输入一个数:"))
if num > max:
max = num
count = 1
elif num == max:
count += 1
if num == 0:
break
print("最大的数是",max)
print("出现了%s次"%count)
![](https://img-blog.csdnimg.cn/direct/fe376981866249759532898bd76c8e9e.png)
51.十进制转换为二进制
num = int(input("请输入一个十进制整数:"))
num_ = " "
while num > 0:
num_ = str(num % 2) + num_
num //= 2
print(num_)
![](https://img-blog.csdnimg.cn/direct/a83b289b0eac4a348bc24ad2292f2ee1.png)
52.十进制转换为十六进制
num = int(input("请输入一个十进制整数:"))
num_ = " "
while num > 0:
item = num % 16
if item >=0 and item < 10:
num_ = str(item) + num_
num //= 16
if item == 10:
item = "A"
num_ = str(item) + num_
num //= 16
if item == 11:
item = "B"
num_ = str(item) + num_
num //= 16
if item == 12:
item = "C"
num_ = str(item) + num_
num //= 16
if item == 13:
item = "D"
num_ = str(item) + num_
num //= 16
if item == 14:
item = "E"
num_ = str(item) + num_
num //= 16
if item == 15:
item = "F"
num_ = str(item) + num_
num //= 16
print(num_)
![](https://img-blog.csdnimg.cn/direct/bf4742b3703f433fa2e004cd0ffc72cc.png)
53.蒙特卡罗模拟,求100000次中出现次数
#由第35和39道综合
import random
num_yes = 0
for i in range(1000000):
x = random.uniform(-1,1)
y = random.uniform(-1,1)
y_ = -x + 1
if x < 0:
num_yes +=1
if 0<x<1 and 0<y<1 and y_>y:
num_yes += 1
print(num_yes)
![](https://img-blog.csdnimg.cn/direct/177b620af4e84ce79d416fccc2ddd010.png)
54.求2001到2100之间的闰年,每10个换行
count = 0
for i in range(2001,2101):
if i % 4 == 0 and i % 100 !=0 or i % 400 == 0:
print(i,end=" ")
count += 1
if count == 10:
print()
count = 0
![](https://img-blog.csdnimg.cn/direct/5a1f0d3af4914d7391f3192d6d0f54a1.png)