以下是苏州大学2018年python期末考试试题(第三次考试)以及参考答案,觉得有用就多多点赞评论收藏吧。
试题
-
给定用于表示年、月、日的3个整数y、m和d,判定该日期是该年的第几天。
-
已知每只鸡有2只脚,每只兔子有4只脚,求解鸡兔同笼问题。给定鸡和兔子的头的总数m和脚的总数n。求鸡和兔子的数量。
-
判定一个整数列表里的元素排序后能否构成等差数列。
-
计算并返回整数列表的中位数。中位数的含义:对于一个有序的数列,排列位置位于整个列表中间的那个元素的值即为中位数。如果数列有偶数个值,取最中间的两个数值的平均数作为中位数。
-
输入一个包含3到11个单词的字符串,单词与单词之间用一个空格分开,最前和最后没有空格,其中的单词一定是0-9数字的英文单词(单词的字母可能大写也可能小写)。请编写程序将其转换为阿拉伯数字的字符串。
-
给定4个整数a, b, c, d,求集合s = {x / y | a <= x <= b, c <= y <= d}中元素的个数。
-
输入两个字符串参数s1, s2(均不为空字符串),和一个非零正整数n。请按照如下规则将字符串s2插入到s1中,并返回生成的字符串:
(1)s1中每隔n个字符,插入一次s2
(2)如果最后一次不足n个字符,则先用空格符号补全到n个字符,然后插入一次s2
-
给定一个字符串,找出其中“”形式的标签片段,并替换成“[TAG-len]”形式的片段。其中tag是由字母、数字和下划线构成可变的标签文本,TAG是将tag中的英文字母全部转换成大写字母后的形式,len是TAG的长度,详见测试用例。
参考答案1
import re
def func1(y,m,d):
if m>12 or d>31:
return -1
if y%4==0:
rlb=[31,29,31,30,31,30,31,31,30,31,30,31]
if d>rlb[m-1]:
return -1
else:
t=0
for i in range(m-1):
t+=rlb[i]
t+=d
return t
else:
rlb=[31,28,31,30,31,30,31,31,30,31,30,31]
if d>rlb[m-1]:
return -1
else:
t=0
for i in range(m-1):
t+=rlb[i]
t+=d
return t
def func2(m,n):
if m<0 or n<0:
return None
x=(4*m-n)/2
y=(n-2*m)/2
if x<0 or y<0 or x!=int(x) or y!=int(y):
return None
else:
return (int(x),int(y))
def func3(lst):
if len(lst)<=1:
return None
elif len(lst)==2:
return True
else:
lst.sort()
d=lst[1]-lst[0]
for i in range(len(lst)-1):
if lst[i+1]-lst[i]!=d:
return False
return True
def func4(lst