Python语言基础编程速通54题

news/2023/6/8 0:47:07

使用OpenJudge上面的题集。
实用Python程序设计测验汇总(2022秋季)。

1 字符菱形

ch = input()
for i in range(1,6):if i <= 3:print(" "*(3-i)+ch*(2*i-1))else:print(" "*(i-3)+ch*(5-(i-3)*2))

2 字符三角形

# 2 字符三角形
ch = input()
print(" "*2+ch)
print(" "+ch*3)
print(ch*5)

3 输出第二个整数

# 3 输出第二个整数
ls = input().split()
print(ls[1])

4 求三个数的和

# 4 求三个数的和
text = input().split()
sum = 0
for i in text:sum += float(i)
print(sum)

5 判断子串

# 5 判断子串
son = input()
father = input()
if son in father:print("YES")
else:print("NO")

6 计算(a+b)*c的值

# 6 计算(a+b)*c的值
a,b,c=map(int,input().split())
sum=(a+b)*c
print(sum)

7 反向输出一个三位数

切片操作语法:

str[start:stop:step] # 其中依次表示为[开始索引:结束索引:步长]

其中是左闭右开区间,步长 step 可以为负数

# 7 反向输出一个三位数
a = input()
print(a[::-1])

8 字符串交换

切片。

# 8 字符串交换
str1 = input()
str2 = input()
s1 = str1[0:2] + str2[2:4]
s2 = str2[0:2] + str1[2:4]
print(s2+'\n'+s1)

9 字符串中的整数求和

# 9 字符串中的整数求和
a,b = map(str,input().split())
c = int(a[0:2])+int(b[0:2])
print(c)

10 计算2的幂

# 10 计算2的幂
mi = int(input())
mul = 1
for i in range(mi):mul *= 2
print(mul)

11 计算多项式的值

格式化字符串,也可以使用format。

# 11 计算多项式的值
x, a, b, c, d = map(float, input().split())
y = a*x**3 + b*x**2 + c*x + d
print("%.7f"%y)

12 奇偶性判断

# 12 奇偶数判断
n = int(input())
if n%2:print("odd")
else:print("even")

13 点和正方形的关系

判断条件。

# 13 点和正方形的关系
x, y = map(int, input().split())
if x <= 1 and x >= -1:if y <=1 and y >= -1:print("yes")else:print("no")
else:print("no")

14 三角形判断

# 14 三角形判断
a, b, c = map(int, input().split())
if a+b>c and b+c>a and a+c>b:print("yes")
else:print("no")

15 计算邮资

# 15 计算邮资
menu = input().split()
a = int(menu[0])
sum = 0
if a > 1000:b = int((a-1000)/500)if (a-1000)%500>0:sum = 8 + (b + 1) * 4else:sum = 8 + b * 4
else:sum += 8
if menu[1] == 'y':print(sum+5)
else:print(sum)

16 分段函数

# 16 分段函数
x = float(input())
y = 0
if x >= 0 and x < 5:y = -x + 2.5
elif x >= 5 and x < 10:y = 2 - 1.5*(x-3)*(x-3)
elif x >= 10 and x < 20:y = x / 2 - 1.5
print("%.3f"%y)

17 简单计算器

# 17 简单计算器
s = input().split()
str = s[0] + s[2] + s[1]
symbol = ['+', '-', '*', '/']
if s[2] in symbol:if s[2]=='/' and s[1] == '0':print("Divided by zero!")else:print(int(eval(str)))
else:print("Invalid operator!")

18 大象喝水

最初,是在lua语言中,math.ceil(x)返回大于等于参数x的最小整数,即对浮点数向上取整.

# 18 大象喝水
import math
h, r = map(int, input().split())
PI = 3.14159
v = h*PI*r*r
num = 20000/v
print(math.ceil(num))

19 苹果和虫子2

# 19 苹果和虫子2
import math
n, x, y = map(int, input().split())
res = n - math.ceil(y/x)
if res < 0:res = 0
print(res)

20 求整数的和与均值

# 20 求整数的和与均值
n = int(input())
sum = 0
for i in range(n):sum += int(input())
print("%d"%sum+" "+"%.5f"%(sum/n))

21 整数序列的元素最大跨度值

# 21 整数序列的元素最大跨度值
n = int(input())
array = input().split()
array = [int(i) for i in array]
print(max(array)-min(array))

22 奥运奖牌计数

# 22 奥运奖牌计数
n = int(input())
jin = 0
yin = 0
tong = 0
for i in range(n):array = input().split()array = [int(i) for i in array]jin += array[0]yin += array[1]tong += array[2]
print("%d"%jin+" "+"%d"%yin+" "+"%d"%tong+" "+"%d"%(jin+yin+tong))

23 鸡尾酒疗法

# 23 鸡尾酒疗法
n = int(input())
x0 = input().split()
baseline = float(x0[1])/float(x0[0])
for i in range(n-1):x1 = input().split()a = float(x1[1])/float(x1[0])sub = a -baselineif sub > 0.05:print("better")elif sub < -0.05:print("worse")else:print("same")

24 角谷猜想

# 24 角谷猜想
n = int(input())
while n!=1:if n % 2:print(str(n)+"*3+1="+str(n*3+1))n=n*3+1else:print(str(n)+"/2=%d"%(n/2))n//=2
print("End")

25 正常血压

# 25 正常血压
n = int(input())
total = 0
maxtotal = 0
for i in range(n):s = input().split()a, b = int(s[0]), int(s[1])if 90<=a<=140 and 60<=b<=90:total+=1if maxtotal<total:maxtotal = totalelse:total = 0
print(maxtotal)

26 数字反转

# 26 数字反转
n = int(input())
while n%10 == 0:n = int(n/10)
n = str(n)
if n[0] == '-':print("-"+n[:0:-1])
else:print(n[::-1])

27 求特殊自然数

# 27 求特殊自然数
def stoi(n, i):if i < 2 or i > 10:return -1ys = ""while n >= i:ys = str(n%i) + ysn //= iys = str(n) + ysreturn ys
for i in range(1,999):if len(stoi(i, 7)) == 3 and len(stoi(i, 9)) == 3:if str(stoi(i, 7)) == str(stoi(i, 9))[::-1]:print(i)print(stoi(i, 7))print(stoi(i, 9))

28 数字统计

# 28 数字统计
l, r = map(int, input().split())
c = ""
for i in range(l, r + 1):c += str(i)
sum = 0
for j in c:if j == '2':sum += 1
print(sum)

29 求最大公约数问题

# 29 求最大公约数问题
a, b = map(int, input().split())
if a < b:a, b = b, a
while a % b:a, b = b, a%b
print(b)

30 多少种取法

# 30 多少种取法
def ways(m, n, s):if m > s:return ways(s, n, s)elif n == 0 and s == 0:return 1elif m == 0 or s == 0:return 0else:return ways(m-1,n-1,s-m)+ways(m-1,n,s)
n = int(input())
for i in range(n):m, n, s = map(int, input().split())print(ways(m, n, s))

31 石头剪刀布

# 31 石头剪刀布
n, a, b = map(int, input().split())
aScore, bScore = 0, 0
na = [int(i) for i in input().split()]
nb = [int(i) for i in input().split()]
for k in range(n):if (na[k%a]==2 and nb[k%b]==5) or (na[k%a]==5 and nb[k%b]==0) or (na[k%a]==0 and nb[k%b]==2):aScore += 1elif na[k%a] == nb[k%b]:passelif (na[k%a]==5 and nb[k%b]==2) or (na[k%a]==0 and nb[k%b]==5) or (na[k%a]==2 and nb[k%b]==0):bScore += 1
if aScore > bScore:print('A')
elif aScore == bScore:print('draw')
elif aScore < bScore:print('B')

32 统计数字字符个数

# 32 统计数字字符个数
s = input()
ret = 0
for i in range(len(s)):if s[i].isdigit():ret += 1
print(ret)

33 大小写字母互换

# 33 大小写字母互换
s = input()
for c in s:if 'a' <= c <= 'z':print(chr(ord(c) - 32 ),end="")elif 'A' <= c <= 'Z':print(chr(ord(c) + 32),end="")else:print(c,end="")

34 过滤多余的空格

# 34 过滤多余的空格
s = input()
for i in range(len(s)):if s[i] == ' ' and s[i-1] == ' ':print('', end='')else:print(s[i], end='')

35 找第一个只出现一次的字符

# 35 找第一个只出现一次的字符
s = input()
flag = 1
for i in range(len(s)):if s.count(s[i]) == 1:print(s[i])flag = 0break
if flag:print('no')

36 判断字符串是否为回文

# 36 判断字符串是否为回文
s = input()
flag = 1
length = int(len(s)/2)
for i in range(length):if s[i] != s[len(s)-1-i]:print("no")flag = 0break
if flag:print("yes")

37 字符串最大跨距

# 37 字符串最大跨距
SS = input().split(",")
s,s1,s2 = SS[0],SS[1],SS[2]
a = s.find(s1)
b = s.rfind(s2)
c = len(s1)
if b-a-c >= 0: print(b-a-c) 
else: print("-1")

38 找出全部子串位置

# 38 找出全部子串位置
n = int(input())
for i in range(n):s = input().split()m = 0if s[1] not in s[0]:print('no',end='')for j in s[0]:a = s[0].find(s[1], m)if a == -1:continueelse:m = a + len(s[1])print(a, end=' ')print("")

39 万年历

# 39 万年历
n = int(input())def days_of_week(year, mon, day):list1 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  #闰年2月份为29天list2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  #平年2月份为28天date = 0years = 0lst_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"]if (year % 4 == 0) & (year % 100 != 0) or year % 400 == 0:if mon in [1, 3, 5, 7, 8, 10, 12]:if day < 1 or day > 31:print('Illegal')returnelif mon == 2:if day < 1 or day > 29:print('Illegal')returnelif mon in [4, 6, 9, 11]:if day < 1 or day > 30:print('Illegal')returnelse:print('Illegal')returnelse:if mon in [1, 3, 5, 7, 8, 10, 12]:if day < 1 or day > 31:print('Illegal')returnelif mon == 2:if day < 1 or day > 28:print('Illegal')returnelif mon in [4, 6, 9, 11]:if day < 1 or day > 30:print('Illegal')returnelse:print('Illegal')return#输入的年份大于等于2018年的判断过程如下:if year >= 2018:for j in range(2018, year):if (j % 4 == 0) & (j % 100 != 0) or j % 400 == 0:  #闰年years += 366else:  #平年years += 365  #闰年天数加366天,平年加365天if ((year % 4) == 0) & ((year % 100) != 0) or ((year % 400) == 0):for i in range(mon - 1):date += list1[i]  #闰年月份按list1相加days = date + dayelse:for i in range(mon - 1):date += list2[i]  #平年月份按list2相加days = date + daytotal = days + yearsji = total % 7  #参考日期是2018年1月1号是星期一#由于"ji=0"时,输出的结果是"星期0",因此对"ji"进行了判断,使"ji=0"时输出的结果为"星期7"print(lst_days[ji])#输入的年份小于2018年的判断过程如下:else:for j in range(year + 1, 2018):if (j % 4 == 0) & (j % 100 != 0) or j % 400 == 0:years += 366else:years += 365if ((year % 4) == 0) & ((year % 100) != 0) or ((year % 400) == 0):for i in range(mon - 1, 12):date += list1[i]days = date - day + 1else:for i in range(mon - 1, 12):date += list2[i]days = date - day + 1total = days + yearsji = total % 7print(lst_days[(8 - ji)%7])for i in range(n):year, mon, day = map(int, input().split())days_of_week(year, mon, day)

40 成绩排序

# 40 成绩排序
a = []
swp = {}
num = int(input())
for i in range(num):b = input().split()b[1] = int(b[1])a.append({"name":b[0], 'score':b[1]})
for i in range(num):for j in range(i+1, num):if a[i]["score"] < a[j]["score"] or (a[i]["score"] == a[j]["score"] and a[i]["name"] > a[j]["name"]):swp = a[i]a[i] = a[j]a[j] = swp   #冒泡排序
for i in range(num):print("%s %d"%(a[i]["name"],a[i]["score"]))

41 图像模糊处理

# 41 图像模糊处理
import copy
n,m = map(int,input().split())
a = []for i in range(n):lst = list(map(int,input().split()))a.append(lst)b = copy.deepcopy(a) # b = a[:] 是浅拷贝,不行for i in range(1,n-1):for j in range(1,m-1):b[i][j] = round((a[i][j] + a[i-1][j] + a[i+1][j] + a[i][j-1] + a[i][j+1])/5)for i in range(0,n):for j in range(0,m):print(b[i][j],end = " ")print("")

42 向量点积计算

# 42 向量点积计算
n = int(input())
a = [int(i) for i in input().split()]
b = [int(i) for i in input().split()]
vetSum = 0
for i in range(n):vetSum += a[i]*b[i]
print(vetSum)

43 病人排队

# 43 病人排队
n = int(input())
a = []
for i in range(n):s = input().split()lst = [str(s[0]),int(s[1])]   #添加上登记顺序a.append(lst)
def KEY(x):if x[1]>=60:return-x[1]  #年龄从大到小else:return 0
a.sort(key=KEY)  #key为自定义比较函数,按函数f的方式比较
for i in range(n):print(a[i][0])

44 矩阵乘法

# 44 矩阵乘法
m, n, k = map(int, input().split())
A = []
B = []
for i in range(m):A.append(list(map(int, input().split())))
for i in range(n):B.append(list(map(int, input().split())))C = [[0 for i in range(k)] for i in range(m)]for i in range(m):for j in range(k):for q in range(n):C[i][j] += A[i][q] * B[q][j]print(C[i][j], end=' ')print("")

45 回文子串

# 45 回文子串
s = input()
n = len(s)
res = []
for i in range(0, n-1):for j in range(i+1, n):if s[i: j+1] == s[j:i:-1] + s[i]:tmpList = [j-i+1, i, s[i:j+1]]res.append(tmpList)
res.sort()
for i in range(len(res)):print(res[i][2])

46 校园食宿预订系统

# 46 校园食宿预订系统
n, m = map(int,input().split())
t={}
for i in range(m):s = input().split()name, price, num =s[0], int(s[1]), int(s[2])t[name]=[price,num]
total = 0
for i in range(n):names = input().split()for name in names:if t[name][1]>0:total += t[name][0]t[name][1] -= 1
print(total)

47 找出所有整数

# 47 找出所有整数
import re
m = '[0-9]+'
while True:try:s = input()lst = re.findall(m,s)for x in lst:print(x)except:break

48 找出所有整数和小数

# 48 找出所有整数和小数
import re
m='[0-9]+\.[0-9]+|[0-9]+'
while True:try:s = input()lst = re.findall(m,s)for x in lst:print(x)except:break

49 找出小于100的整数

# 49 找出小于100的整数
import re
m = r"(^|[^0-9-])(\d{1,2})([^0-9]|$)"
for i in range(2):s = input()lst = re.findall(m,s)for x in lst:# // 在此处补充你的代码print(x[1])

50 密码判断

# 50 密码判断
import rem='[A-Za-z][-A-Za-z0-9_]{7,}\Z'while True:try:s = input()if re.match(m,s) != None:print("yes")else:print("no")except:break

51 寻找h3

# 51 寻找h3
import re
m = \
'<h3>(.*?)</h3>'
for x in  re.findall(m,"cdef<h3>abd</h3><h3>bcK</h3><h3>123</h3>KJM"):print(x)

52 找<>中的数

# 52 找<>中的数
n=int(input())
import re
for i in range(n):s=input()m='<(0|[1-9][0-9]{0,2})>'result=re.findall(m,s)if result==None:print("NONE")elif len(result)==0:print("NONE")else:for x in result:print(x,end=" ")print("")

53 手机号码

# 53 手机号码
import re
n=int(input())
isfirstprint=True
for j in range(n):s = input()m = '<(.+?)>(.*?)</\\1>'result = re.findall(m, s)if len(result) == 0:if not isfirstprint:print("\n",end="")print("NONE",end="")isfirstprint=Falseelse:isNone = Truefor x in result:# 查找电话号码m = '\([0-9]{1,2}\)-[0-9]{3,}'phone_maybe = re.findall(m, x[1])if len(phone_maybe) == 0:continueelse:phone = []for tmp in phone_maybe:if len(re.findall('-[0-9]+', tmp)[0]) < 5:phone += re.findall('\(([0-9]{1,2})\)-[0-9]{3,}', tmp)if len(phone) > 0:isNone=Falseif not isfirstprint:print("")isfirstprint=Falseprint("<" + x[0] + ">", end="")isFirstPrinthere=Truefor tt in phone:if not isFirstPrinthere:print(",", end="")print(tt, end="")isFirstPrinthere=Falseprint("</" + x[0] + ">",end="")if isNone==True:if not isfirstprint:print("")print("NONE",end="")isfirstprint=False

54 时间处理

# 54 时间处理
import datetime
s=[]
t=[]
while True:try:s.append(input())except:break
for i in range(len(s)):if i%2==0:if len(s[i].split())==5:a=datetime.datetime.strptime(s[i],'%Y %m %d %H %M')else:a = datetime.datetime.strptime(s[i], '%m-%d-%Y %H:%M %p')else:ss=s[i].split()if len(ss)==1:a+=datetime.timedelta(seconds=int(ss[0]))else:a+=datetime.timedelta(days=int(ss[0]),hours=int(ss[1]),minutes=int(ss[2]))t.append(a)
for i in t:print(i)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4556318.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

基于jira的缺陷自动化报表分析 (二)jira 库的一些常用操作

一、创建jira连接 from jira import JIRA test_jira JIRA("http://jira.test.***.cn", # jira地址 basic_auth("username", "password")) # 用户名、密码 二、项目 1、遍历jira项目 for project in test_jira.pr…

Linux 下使用USB 网络

Andrew Huang <bluedrum163.com> 转载请注明作者及联络方式.在介绍USB的驱动开发时,我通常会用用Linux的的USB网络来演示&#xff0c;它兼容RNDIS网络&#xff0c;一台Linux即可充当USB的device端&#xff0c;也可以由另一台&#xff2c;inux来充当&#xff35;&#xff…

STP详解-STP、RSTP、MSTP

华为认证技术合集http://www.thinkmo.cn/Home/Course/nradio/course_id/267.html?etokene6fec722 STP详解 01 冗余链路中存在的问题 如图所示LSW1和LSW2之间有两条线路相连&#xff0c;它们之间任何一条链路出现故障另外一条线路可以马上顶替出现故障的那条链路&#xff0c;…

基于ISO智能交通系统框架的 LTE-V2X技术规范

1 范围 本标准基于 ISO 智能交通系统框架&#xff0c;在接入层定义了一种新的通信接口&#xff0c;命名为 ITS-LTE-V2X 接口。该接口基于第三代移动伙伴计划&#xff08;3GPP&#xff09;定义的 LTE-V2X 技术规范。 本标准通过对基于 ISO 智能交通系统框架的通信适配层(CAL)和…

Codeforces 1280 B. Beingawesomeism

time limit per test2 seconds memory limit per test256 megabytes input:standard input output:standard output You are an all-powerful being and you have created a rectangular world. In fact, your world is so bland that it could be represented by a rc grid.

HCIA------HDLC和PPP

广域网&#xff08;WAN&#xff09; HDLC&#xff08;高级数据链路控制&#xff09; interface Serial 1/0/0 link-protocol hdlcHDLC接口地址借用 interface loopback 0 ip address 10.1.1.1 32 ip address unnumbered interface loopback 0 ip route-static 10.1.1.2 32 …

BUUCTF PWN-堆题总结 2021-09-27

文章目录整体分析-2021-09-27新角度TcacheUAFFile结构体HourseOfForceUnlink经验新角度ciscn_2019_final_5分析EXPTCACHEhitcon_2018_children_tcache分析EXPUAFwustctf2020_easyfast分析EXPACTF_2019_babyheap分析EXPgyctf_2020_some_thing_interesting分析EXPbjdctf_2020_YDS…

cisco packet tracer 环境下做ppp实验

拓扑&#xff1a;pppp验证实验有四方式&#xff1a;1、使用PAP单向认证&#xff1b;2、使用PAP双向认证&#xff1b;3、CHAP单向认证&#xff1b;4、CHAP双向认证。首先&#xff1a;Router0充当是电信服务提供商的设备&#xff0c;Router1为用户端设备&#xff1b;Router0:全局…