Python练习7

1.编程实现人机版“石头、剪刀、布”游戏

2. 输出如下的数字金字塔

3.编写程序,从键盘上输入若干个整数,计算并输出这些数中所有奇数之和、偶数之和及所有数的平均值,当输入字符'Q’时,程序输出计算结果。

4.实现蒙特卡洛算法求π,并用turtle绘制过程

5.编写程序,输出1*2*3+3*4*5+5*6+7+....+99*100*101的值。

6.输出1000以内的素数(5个数一行)

7.分解质因数。把一个合数用质因数相乘的形式表示出来,叫做分解.质因数。如30=2x3x5


1. 编程实现人机版“石头、剪刀、布”游戏

import random

computer = random.randint(1, 3)
user = int(input("1.拳头 2.剪刀 3.布\n请出拳:"))
if computer == 1:
    computer = '拳头'
elif computer == 2:
    computer = '剪刀'
else:
    computer = '布'
if user == 1:
    user = '拳头'
elif user == 2:
    user = '剪刀'
else:
    user = '布'
print('电脑人出的是:{},用户出的是:{}'.format(computer, user))
if ((user == 1 and computer == 2)
        or (user == 2 and computer == 3)
        or (user == 3 and computer == 1)):
    print('恭喜用户胜出!!!')
elif user == computer:
    print('好吧,此局平局!')
else:
    print('人机胜出!!!')

2. 输出如下的数字金字塔

for i in range(1, 10):
    for j in range(1, 10 - i):
        print(' ', end='')
    for j in range(1, i + 1):
        print(j, end='')
    for j in range(i - 1, 0, -1):
        print(j, end='')
    print()

3. 编写程序,从键盘上输入若干个整数,计算并输出这些数中所有奇数之和、偶数之和及所有数的平均值,当输入字符'Q’时,程序输出计算结果。

ji = 0
ou = 0
avg = 0
count = 0
while True:
    current = input("请输入一个数:")
    if current == 'Q':
        print("所有奇数之和:{},偶数之和:{},所有数的平均数是:{:.2f}".format(ji, ou, avg))
        break
    else:
        count += 1
        num = int(current)
        if num % 2 == 0:
            ou += num
        else:
            ji += num
        avg = (ji + ou) / count

4. 实现蒙特卡洛算法求π,并用turtle绘制过程

import turtle as t
import random

# 画圆
t.penup()
t.goto(0, -200)
t.pendown()
t.circle(200)

# 画正方形
t.penup()
t.goto(-200, 200)
t.pendown()
for i in range(4):
    t.forward(400)
    t.right(90)

outer = 0
inner = 0
t.speed(0)
for i in range(1000):
    x = random.randint(-200, 200)
    y = random.randint(-200, 200)
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.dot(5, 'blue')
    if x ** 2 + y ** 2 <= 40000:
        inner += 1
    else:
        outer += 1
pi = 4 * (inner / 1000)
print("总共画了1000个点,其中{}个点落在圆内,{}个点落在圆外".format(inner, outer))
print("根据蒙特卡洛算,π≈{}".format(pi))

5. 编写程序,输出1*2*3+3*4*5+5*6+7+....+99*100*101的值。

total = 0
for i in range(1, 100, 2):
    tmp = i * (i + 1) * (i + 2)
    total += tmp
print("1*2*3+3*4*5+5*6*7+…+99*100*101={}".format(total))

6. 输出1000以内的素数(5个数一行)

count = 0
print('1000以内的素数有:')
for i in range(2, 1000):
    Flag = True
    for j in range(2, i):
        if i % j == 0:
            Flag = False
            break
    if Flag:
        print(i, end='\t')
        count += 1
        if count % 5 == 0:
            print()

7. 分解质因数。把一个合数用质因数相乘的形式表示出来,叫做分解.质因数。如30=2x3x5

# num = int(input('请输入一个合数:'))
# tmp = num
# count = 0
# print("{}=".format(num), end='')
# i = 2
# while i < num:
#     if tmp % i == 0:
#         if count > 0:
#             print('x', end='')
#         print(i, end='')
#         tmp = tmp / i
#         i = 1
#         count += i
#     i += 1

num = int(input('请输入一个合数:'))
tmp = num
a = ''
print("{}=".format(num), end='')
for i in range(2, num):
    if tmp % i == 0:
        print(i, end='')
        a = a + str(i)
        tmp = tmp / i
        print('a = a + "x"', end='')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书启秋枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值