Python循环练习

本文介绍了使用Python实现的多种基础编程技巧,包括嵌套循环构建金字塔、素数筛选、数学常数如π和e的近似计算、完全数查找、游戏算法(剪刀石头布)、数据处理(最大数和频率)、数值转换(十进制转二进制和十六进制)、以及蒙特卡罗模拟和闰年的判断。
摘要由CSDN通过智能技术生成
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()
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
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)
47.求数列e的近似值
e = 1
item = 1
n  = int(input("请输入i的值:"))
for i in range(1,n+1):
    item *= i
    e += 1/item
print(e)
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)
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
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)
51.十进制转换为二进制
num = int(input("请输入一个十进制整数:"))
num_ = " "
while num > 0:
    num_ =  str(num % 2) + num_ 
    num //= 2
print(num_)
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_)
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)
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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值