pta python入门程序设计练习题

前言

这是一份python入门程序设计竞赛练习题,几天就可以刷完这100题,作为大家一个快速的起步阶段。
网址链接:https://pintia.cn/home/account?c=e4e01fa5b32fdf0e&u=Python

1-20

1.输出“Hello, World!”

print("Hello, World!")

2.A+B

a,b= input().split(" ")
a=int(a)
b=int(b)
print(a+b)

3.输出乘法式子

a,b= input().split(" ")
a=int(a)
b=int(b)
print(f"{a}*{b}={a*b}")

4.输出沙漏图形

#这是上半
for i in range(1,5):
    #输出空格
    for j in range(i-1):
        print(" ",end='')
    #输出*
    for j in range(2*(6-i)-1):
        print("*",end='')
    print()


# 这是下半
for i in range(1,6):
    #输出空格
    for j in range(5-i):
        print(" ",end='')
    #输出*
    for j in range(1,2*i):
        print("*",end='')
    print()

5.显示两句话

print("Everything depends on human effort.")
print("Just do it.")

6.输出字符矩形

for i in range(4):
    print("@@@@@@@@@@@@@@@@@@@@")

7.立方数

a =input()
a = int(a)
print(a*a*a)

8.取子串

parts = input().split(' ')
num1 = int(parts[0])
num2 = int(parts[1])
message=" ".join(parts[2:])
if num1+num2>=len(message):
    len = len(message)
else:
    len =num1+num2
for i in range(num1-1,len):
    print(message[i],end='')
print()

9.逆置串

str = input()
for i in range(len(str)-1, -1, -1):
    print(str[i],end='')
print()

10.求矩形面积

a,b= input().split(" ")
a=int(a)
b=int(b)
print(a*b)

11.求圆周长和面积

r = input()
r = int(r)
pi = 3.14159
d = 2*pi*r
s = pi*r*r
print("%.2f %.2f" % (d, s))

12.温度转换

f = input()
f = int(f)
c = 5*(f-32)/9
print("%.1f" %c)

13.反序显示一个四位数

str = input()
for i in range(len(str)-1, -1, -1):
    print(str[i],end='')
print()

14.英文字母的大小写转换

c1, c2 = input().split()
print(c1.lower() + ','+ c2.upper())

15.4位整数的数位和

num = input()
res = 0
for i in range(len(num)):
    res = res+ int(num[i])
print(res)

16.5门课的平均分

num = input().split()
sum = 0
for i in range(len(num)):
    sum = sum+int(num[i])
sum = sum/5
print("%.1f" %sum)

17.打字

a,b,c = map(int, input().split())
print((a+b)*c)

18.求串长

str = input()
print(len(str))

19.求子串

parts = input().split(' ')
num = int(parts[0])
message=" ".join(parts[1:])
print(message[:num])

20.两者中的大者

a,b = input().split()
a = int(a)
b = int(b)
if a>b: print(a)
else: print(b)

21-40

21.三者的最大值

nums = list(map(int,input().split()))
nums.sort(reverse=True)
print(nums[0])

22.三数排序

nums = list(map(int,input().split()))
nums.sort(reverse=True)
for i in range(len(nums)):
    if i!=0: print(" ",end='')
    print(nums[i],end='')
print()

23.成绩转换

num = int(input())
if num>=90: print("A")
elif num>=80: print("B")
elif num>=70: print("C")
elif num>=60: print("D")
else: print("E")

24.求某月的天数

year, month = map(int, input().split())
if month in [1, 3, 5, 7, 8, 10, 12]:
    print(31)
elif month in [4, 6, 9, 11]:
    print(30)
else:
    if (year % 4 == 0 and year % 100!= 0) or year % 400 == 0:
        print(29)
    else:
        print(28)

25.n个整数中的最大值

n = int(input())
numbers = list(map(int, input().split()))
max_value = max(numbers)
print(max_value)

26.求和

n = int(input())
sum=0
for i in range(1,n+1):
    sum = sum+i
print(sum)

27.偶数之和

n = int(input())
sum=0
for i in range(1,n+1):
    if i%2==0:
        sum = sum+i
print(sum)

28.最大公约数

def euclidean_algorithm(a, b):
    while b != 0:
        a, b = b, a % b
    return a

a,b = map(int,input().split())
print(euclidean_algorithm(a,b))

29.又见A+B(1)

t = int(input())
for _ in range(t):
    a,b=map(int,input().split())
    print(a+b)

30.又见A+B(2)

while True:
    try:
        a,b=map(int,input().split())
        print(a+b)
    except EOFError:
        break

31.又见A+B(3)

while True:
    try:
        a,b=map(int,input().split())
        if a==0 and b==0:
            break
        print(a+b)
    except EOFError:
        break

32.数据统计

while True:
    try:
        mylist = list(map(int,input().split()))
        a = 0
        b = 0
        c = 0
        for i in range(1,len(mylist)):
            if mylist[i] < 0: a = a + 1
            if mylist[i] == 0: b = b + 1
            if mylist[i] > 0: c = c + 1
        print(a,b,c)
    except EOFError:
        break

33.亲和数判断

def find(n):
    divisor_sum = 0
    for i in range(1, n):
        if n % i == 0:
            divisor_sum += i
    return divisor_sum

try:
    while True:
        a, b = map(int, input().split())
        sum_a = find(a)
        sum_b = find(b)
        if sum_a == b and sum_b == a:
            print("YES")
        else:
            print("NO")
except EOFError:
    pass

34.数位之和

try:
    while True:
        num = input().strip()
        digit_sum = 0
        for digit in num:
            digit_sum += int(digit)
        print(digit_sum)
except EOFError:
    pass

35.数列求和

from decimal import *
def s_sum(e):
    a=1
    b=2
    c=0
    while a/b >=e:
        c += Decimal(a /b)
        a +=2
        b *=2
    return round(c,6)
while True:
    try:
        e= Decimal(input().strip())
        result =s_sum(e)
        print(result)
    except EOFError:
        break

36.星号三角形

try:
    while True:
        n = int(input())
        for i in range(1, n + 1):
            # 计算当前行需要的空格数
            space_num = n - i
            # 计算当前行需要的星号数
            star_num = 2 * i - 1
            # 输出空格和星号
            print(" " * space_num + "*" * star_num)
except EOFError:
    pass

37.计算sinx的近似值

PI = 3.1415926

def factorial(n):
    result = 1
    for i in range(1, n + 1):
        result *= i
    return result

def sin_approx(x):
    sin_value = 0
    term = x
    n = 1
    while abs(term) >= 0.000001:
        sin_value += term
        n += 2
        term = (-1) ** ((n - 1) // 2) * (x ** n) / factorial(n)
    return sin_value

T = int(input())

for _ in range(T):
    y = int(input())
    x = y * PI / 180
    result = sin_approx(x)
    print("{:.6f}".format(result))

38.素数判断

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True

T = int(input())

for _ in range(T):
    m = int(input())
    if is_prime(m):
        print("yes")
    else:
        print("no")

39.百钱百鸡

try:
    while True:
        n = int(input())
        for rooster in range(0, n // 5 + 1):
            for hen in range(0, n // 3 + 1):
                chick = n - rooster - hen
                if chick % 3 == 0 and rooster * 5 + hen * 3 + chick // 3 == n:
                    print(rooster, hen, chick)
except EOFError:
    pass

40.平均值

T = int(input())

for _ in range(T):
    num_str = input()
    num_list = [int(num) for num in num_str.split()]
    total = sum(num_list)
    average = total / len(num_list)
    print("{:.1f}".format(average))

41-60

41.闰年判断

T = int(input())
for _ in range(T):
    y = int(input())
    if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0:
        print('YES')
    else:
        print('NO')

42.求n!

T = int(input())
for _ in range(T):
    n = int(input())
    result = 1
    for i in range(1, n + 1):
        result *= i
    print(result)

43.统计数字

T = int(input())
for _ in range(T):
    s = input()
    count = 0
    for char in s:
        if char.isdigit():
            count = count + 1
    print(count)

44.组合数

import math
while True:
    try:
        n, m = map(int, input().split())
        result = math.comb(n, m)
        print(result)
    except (EOFError, ValueError):
        break

45.单词首字母大写

while True:
    try:
        line = input()
        words = line.split()
        newwords=[]
        for i in range(len(words)):
            newwords.append(words[i].capitalize())
        print(' '.join(newwords))
    except EOFError:
        break

46.列出完数
先去找到10000以内的完数,发现只有6, 28, 496, 8128,设置一个数组就好了

res=[6, 28, 496, 8128]
while True:
    try:
        found = False
        n = int(input())
        print(n, end=':')
        for i  in range(len(res)):
            if res[i]<=n:
                print(f" {res[i]}", end='')
                found=True
        if not found:
            print(" NULL", end='')
        print()
    except EOFError:
        break

47.输入输出练习(1)

T = int(input())
for _ in range(T):
    data = list(map(int, input().split()))
    n = data[0]
    numbers = data[1:]
    total = sum(numbers)
    print(total)

48.输入输出练习(2)

try:
    while True:
        line = input()
        data = list(map(int, line.split()))
        n = data[0]
        numbers = data[1:]
        total = sum(numbers)
        print(total)
except EOFError:
    pass

49.输入输出练习(3)

while True:
    line = input().split()
    n = int(line[0])
    if n == 0:
        break
    numbers = [int(i) for i in line[1:]]
    total = sum(numbers)
    print(total)

50.输入输出练习(4)

T = int(input())
for i in range(T):
    data = list(map(int, input().split()))
    n = data[0]
    numbers = data[1:]
    total = sum(numbers)
    print(total)
    if i < T - 1:
        print()










61-80

81-100

posted @ 2025-01-06 11:12  傻傻的小小豪  阅读(314)  评论(0)    收藏  举报