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()

浙公网安备 33010602011771号