Day16(Python作业)
(Python作业来自qq群:651707058,欢迎任何程度的Python学习者)
题一:
给你一段英文,要求按单词反向
例如:’this is a test’
输出:’test a is this’
def words_convert(s):
'''
:param s:传入的英文句子
:return: 反向好的英文句子
'''
s1=s.split()
return ' '.join(s1[-1::-1])
print(words_convert('this is a test'))
题二:
给你一个字典:
t={‘year’:’2013’,’month’:’9’,’day’:’30’,’hour’:’16’,’minute’:’45’,’second’:’2’}
请按这样的格式输出:2013-09-30 16:45:02
def data_to_str(d):
'''
:param d: 日期字典
:return: str 格式化后的日期
'''
s1='{} {:>02} {:>02}'.format(t['year'],t['month'],t['day'])
s2='{} {:>02} {:>02}'.format(t['hour'],t['minute'],t['second'])
print(s1,s2)
print('-'.join(s1.split()),end=' ')
print(':'.join(s2.split()))
t={'year':'2013','month':'9','day':'30','hour':'16','minute':'45','second':'2'}
print(data_to_str(t))
注意:可查看format用法https://blog.csdn.net/qq_42849332/article/details/82153807
题三:给你一个这样的字符串:k1:1|k2:2|k12:345|k789:9527
要求转换成这样的字典{‘K1’:1,’k2’:2,’k12’:345,’k789’:9527}
import re
def str_to_dict(s):
'''
:param s:字符串
:return: dict 转换成的字典
'''
D={}
s1=s.split('|')
for i in s1:
D[i.split(':')[0]]=i.split(':')[1]
return D
s='k1:1|k2:2|k12:345|k789:9527'
print(str_to_dict(s))
#正则表达式
import re
str1 = 'k:1|k2:2|k3:3|k4:4'
res= re.findall(r'k\d*:\d*',str1)
print(res)
res_dict = {s[:s.index(':')]:int(s[s.index(':')+1:]) for s in res}
print(res_dict)
题四:
你有一些号码,你正试图找到最近的平方数(一个完美的正方形)。平方数是平方根为整数的数字。
例如,如果我们从数字8开始,那么附近的两个平方数是4(sqrt(4) = 2)和9 (sqrt(9)==3)
所以答案是9,因为9是最接近8的。
import math
def nearest_num(num):
'''
:param num: 数字
:return: res 最接近的平方数
'''
s=math.floor(math.sqrt(int(num)))
x=math.fabs(s**2-num)
y=math.fabs((s+1)**2-num)
if x>y:
return (s+1)**2
else:
return s**2
print(nearest_num(123))
题五:画“口”
from turtle import *
speed(0)#控制运行速度
def pen_skip(step):
'悬浮移动'
penup()
forward(step)
pendown()
def kou(long):
for i in range(4):
forward(long)
left(90)
for i in range(1,41):
kou(10)
if i %10 == 0:
pen_skip(10)
left(90)
pen_skip(15)
exitonclick()
运行结果: