python小题汇总

1、
# 九九乘法表

for i in range(1, 10):
    for j in range(1, i + 1):
        sum = i * j
        s = str(j) + "*" + str(i) + "=" + str(sum)
        print(s, end=',')  # end代表不换行,用特殊字符连接下一字符
    print()

在这里插入图片描述
#九九乘法表倒显

for i in range(1, 10):
    s = ""
    for j in range(i, 10):
        sum = i * j
        s += str(i) + "*" + str(j) + "=" + str(sum)+" "
    print("{:>60}".format(s))#右对齐

在这里插入图片描述
# 打印菱形

a = int(input(">>>"))
if not a % 2:
    a += 1
e = -(a // 2)
for i in range(e, a+e):
    print(abs(i) * " " + (a - 2 * abs(i)) * "*")

在这里插入图片描述 在这里插入图片描述

# 打印闪电

e = -(7 // 2)
for i in range(e, abs(e) + 1):
    if i > 0:
        print(" " * 3 + (4 - i) * "*")
    elif i < 0:
        print(abs(i) * " " + (4 + i) * "*")
    else:
        print(7 * "*")

在这里插入图片描述 在这里插入图片描述
# 求1到5 的阶乘

sum =1
for i in range(1,6):
    sum = sum + i*sum
    print(sum)

# 求偶数
质数:一个数只能被1和他本身整除

while True:
    c = int(input(">>>:"))
    s = []
    count = 0
    for i in range(2, c):
        if c % i == 0:
            s.append(i)
            count += 1
    if count > 0:
        print("是偶数,且能被{}整除".format(s))
    else:
        print("质数")

在这里插入图片描述
求十万以内的所有素数(考效率)

# 求十万以内的所有素数(考效率)
#方法一:
import datetime
num = int(input(">>>"))
start = datetime.datetime.now()
strs = ""
count = 0
for i in range(3, num, 2):
    if (i > 10 and i % 10 == 5):
        continue
    else:
        for c in range(2, int(i ** 0.5) + 1):  # 2,开方+1
            if i % c == 0:
                break
        else:
            strs += str(i) + ","
            count += 1
end = datetime.datetime.now()
time = (end - start).total_seconds()
print(strs)
print("一共有:" + str(count) + "个,所用time:" + str(time))

#方法二:一个合数一定可以分解成几个素数的乘积,也就是说一个数如果能被一个素数整除就是合数
lst = [2]
for n in range(3, 100000):
    for i in lst:
        if n % i == 0:
            break
    else:
        lst.append(n)
print(lst)
# 方法三:
import datetime
import math
n = 100000
pn = []
count = 0
flag = False
start = datetime.datetime.now()
for i in range(2, n):
    for j in pn:
        count += 1
        if i % j == 0:
            flag = True   # 偶数
            break
        if j >= math.sqrt(i):
            flag = False  # 质数 
            break
    if not flag:
        pn.append(i)
end = (datetime.datetime.now() - start).total_seconds()
print(len(pn))
print(count)
print(end)

在这里插入图片描述# 猴子吃桃:第一天是吃掉了一半+1个,以此类推,每天都吃掉前一天剩下的一半+1个,直至第10天发现只剩了1个

# 第1天:剩下x/2-1
# 第2天:剩下d1/2-1
#  ...,依次类推
# 第10天,剩下1
x = 1
for i in range(9, 0, -1):
    x = (x + 1) * 2
    print("第" + str(i) + "天剩余:" + str(x))

在这里插入图片描述
# 显示杨辉三角前6行
# 第n行有n项,n是正整数
# 第n行数字之和为2
(n-1)

#方法一:
triangle = [[1], [1, 1]]
n = 6
for i in range(2, n):
    pre = triangle[i - 1]
    cur = [1]
    for j in range(0, i - 1):
        cur.append(pre[j] + pre[j + 1])
    cur.append(1)
    triangle.append(cur)
print(triangle)
# 方法二:每行都用一个list存储
upTriangle = [1, 1]
print([1])
print(upTriangle)
for i in range(2, 6):
    curTriangle = [1]
    for j in range(0, i - 1):
        curTriangle.append(upTriangle[j] + upTriangle[j + 1])
    curTriangle.append(1)
    print(curTriangle)
    upTriangle = curTriangle

# 方法三:首尾两端都加0
# triangle = [0, 1, 0]
upTriangle = [0, 1, 0]
for i in range(0, 6):
    cur = [0]
    for j in range(len(upTriangle) - 1):
        cur.append(upTriangle[j] + upTriangle[j + 1])
    cur.append(0)
    upTriangle = cur
    print(tuple(upTriangle[1:-1]))  # 不显示头尾两端的0

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值