第一题:
1. 题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,
输出按照key值升序进行输出。
- 输入描述:先输入键值对的个数,然后输入成对的index和value值,以空格隔开
- 输出描述:输出合并后的键值对(多行)
- 示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
代码:
def integration(list_num): #将列表中的每个元素的索引为0的元素作为字典的key值,而索引为1的元素作为字典的value值
dict_num = dict()
for list_tmp in list_num:
if list_tmp[0] in dict_num:
dict_num[list_tmp[0]]=int(dict_num[list_tmp[0]]) + int(list_tmp[1])
else:
dict_num[list_tmp[0]] = int(list_tmp[1])
for key,values in dict_num.items():
print(int(key),values)
count = int(input('count:'))
list_num = [(input().split())for num in range(count)] ##将所有输入的数据以嵌套列表的方式存储
integration(list_num)
输入:
4
0 1
0 2
1 2
3 4
输出:
0 3
1 2
3 4
第二题:
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间 用一个空格隔开,语句中除了英文字母外,不再包含其他字符
- 输入描述:将一个英文语句以单词为单位逆序排放。- 输出描述:得到逆序的句子
示例1:
- 输入
I am a boy
- 输出
boy a am I
str1 = input("input:")
list_tmp = str1.split()
str_tmp = list_tmp[::-1]
print(' '.join(str_tmp))
第三题:
用 filer()进行函数式编程,写一段代码来给出一个年份的列表并返回一个只有闰年的列表。列表解析式实现方式呢?
代码:
函数式编程:
def Judge_Leap_Year(*args):
for Year_num in args:
if (Year_num % 4 == 0 and Year_num % 100 != 0) or Year_num % 400 == 0:
return True
else:
return False
list_year = [1946,1821,1960,2082,2004,2003,1725,1840]
print(list(filter(Judge_Leap_Year,list_year)))
列表解析式:
list_year = [1946,1821,1960,2082,2004,2003,1725,1840]
print([year for year in list_year if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 ])
第四题:
列表和字典复习.给出一个整数值,返回代表该值的英文,比如输入 89 返回"eight-nine"。附加题:
能够返回符合英文语法规则的形式,比如输入“89”返回“eighty-nine”。本练习中的值限定在家 0
到 1,000
English_num = ['zero','one','two','three','four','five','six','seven','eight','nine','ten']
dict_tmp = {str(num):English_num[num] for num in range(0,11)}
num = input()
if 0 <= int(num) <=1000:
str_num =str()
for char in num :
str_num = str_num + dict_tmp[char]+'-'
print(str_num[:-1])
第五题:
a)给出两个可识别格式的日期,比如 MM/DD/YY 或者 DD/MM/YY 格式,计算出两个日期间的天数.
b)给出一个人的生日,计算从此人出生到现在的天数,包括所有的闰月.
c)还是上面的例子,计算出到此人下次过生日还有多少天.
a代码:
import datetime
def Get_time(date:str):
date_tmp =list()
date_tmp = date.split('/')
return int(date_tmp[2]),int(date_tmp[1]),int(date_tmp[0])
def Date_Diff(args1,args2):
print((abs(datetime.date(*args1)-datetime.date(*args2)).days))
time1 =input('date1 DD/MM/YY:')
time2 = input('date2:DD/MM/YY:')
Date_Diff(Get_time(time1),Get_time(time2))
b代码:
import datetime
from datetime import date
brithday = input('DD/MM/YY:')
print((date.today()-datetime.date(*Get_time(brithday))).days)
c代码:
import datetime
from datetime import date
def Obtain_next_birthday():
next_birthday = list()
today = str(date.today()).split('-')
birthday = Get_time(input('DD/MM/YY:'))
next_birthday.append(int(today[0])+1)
next_birthday.extend(birthday[1:])
return next_birthday
next_birthday = Obtain_next_birthday()
print((datetime.date(*next_birthday)- date.today()).days)