哪位大佬教教我这俩个题目怎么做?想了几个小时了想不明白
可以放一下链接吗?或者你点开他那里计算某一天是星期几的公式放上来看看 数字转英文:# 将 0 ~ 9 的数字转换成英文
def unit_to_word(u):
words = {
0: 'zero', 1: 'one', 2: 'two', 3: 'three',
4: 'four', 5: 'five', 6: 'six', 7: 'seven',
8: 'eight', 9: 'nine'
}
return words
# 将 10 ~ 19,20 ~ 99 的十位部分数字转换成英文
def tens_to_word(t):
words = {
10: 'ten', 11: 'eleven', 12: 'twelve',
13: 'thirteen', 14: 'fourteen', 15: 'fifteen',
16: 'sixteen', 17: 'seventeen', 18: 'eighteen',
19: 'nineteen', 20: 'twenty', 30: 'thirty',
40: 'forty', 50: 'fifty', 60: 'sixty',
70: 'seventy', 80: 'eighty', 90: 'ninety'
}
if 10 <= t < 20 or not t % 10:
return words
else:
a, b = divmod(t, 10)
return words + ' ' + unit_to_word(b)
# 将 百位数字转换成英文
def hundreds_to_word(h):
a, b = divmod(h, 100)
if b < 10:
return f"{unit_to_word(a)} hundred and {unit_to_word(b)}"
else:
return f"{unit_to_word(a)} hundred and {tens_to_word(b)}"
print(hundreds_to_word(729))
输出日历:
def day(y, m, d):
ans = 0
month =
if not isLeapYear(y):
month = 28
for i in range(1,y):# 注意计算之前年的天数时要从1开始计算
if isLeapYear(i):
ans += 366
# ans = ans % 7
else:
ans += 365
# ans = ans % 7
for i in range(m-1): # 这里因为月份是由数组表示的,从1月加到m-1月在数组中就是从下标0加到下标m-2
ans +=month
# ans = ans % 7
ans += d
return ans % 7# 最后这里对7取余也可以,如果计算的年数过多可以边加天数,边对7取余,就像注释掉的那些代码一样
def isLeapYear(y):
if (y % 400 == 0) or (y % 100 != 0 and y % 4 == 0):
return True
else:
return False
def calendar(y, m):
month =
if not isLeapYear(y):
month = 28
print(f"\t\t\t{y}年{m}月\t\t\t")
print()
print('\t'.join(['Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa']))
temp = [''] * 7
d = month
for i in range(1, d + 1):
temp = str(i)
if temp[-1] != '' or i == d:
print('\t'.join(temp))
temp = [''] * 7
calendar(2022, 3) isdkz 发表于 2022-3-7 00:01
数字转英文:
那个转化成英文的输出形式不对? 风百默 发表于 2022-3-7 07:58
那个转化成英文的输出形式不对?
个位数的跟十位数的是另两个函数,你看一下注释,我有写着注释的,
题目不是要求 转换个位,十位,百位的用不同函数吗 风百默 发表于 2022-3-7 07:58
那个转化成英文的输出形式不对?
我改一下,可能是我理解错了 本帖最后由 isdkz 于 2022-3-8 20:39 编辑
风百默 发表于 2022-3-7 07:58
那个转化成英文的输出形式不对?
如果都要用 hundreds_to_word 这个函数转换的话,就改成这样
# 将 0 ~ 9 的数字转换成英文
def unit_to_word(u):
words = {
0: 'zero', 1: 'one', 2: 'two', 3: 'three',
4: 'four', 5: 'five', 6: 'six', 7: 'seven',
8: 'eight', 9: 'nine'
}
return words
# 将 10 ~ 19,20 ~ 99 的十位部分数字转换成英文
def tens_to_word(t):
words = {
10: 'ten', 11: 'eleven', 12: 'twelve',
13: 'thirteen', 14: 'fourteen', 15: 'fifteen',
16: 'sixteen', 17: 'seventeen', 18: 'eighteen',
19: 'nineteen', 20: 'twenty', 30: 'thirty',
40: 'forty', 50: 'fifty', 60: 'sixty',
70: 'seventy', 80: 'eighty', 90: 'ninety'
}
if 10 <= t < 20 or not t % 10:
return words
else:
a, b = divmod(t, 10)
return words + ' ' + unit_to_word(b)
# 将 百位数字转换成英文
def hundreds_to_word(h):
if h <10:
return unit_to_word(h)
elif 10 <= h < 100:
return tens_to_word(h)
elif h % 100 == 0:
return f"{unit_to_word(h//100)} hundred"
else:
a, b = divmod(h, 100)
if b < 10:
return f"{unit_to_word(a)} hundred and {unit_to_word(b)}"
else:
return f"{unit_to_word(a)} hundred and {tens_to_word(b)}"
print(hundreds_to_word(99)) isdkz 发表于 2022-3-7 08:18
如果都要用 hundreds_to_word 这个函数转换的话,就改成这样
还是有点问题
isdkz 发表于 2022-3-7 08:18
如果都要用 hundreds_to_word 这个函数转换的话,就改成这样
大佬,return f"{}and{}"是什么形式的返回方式 风百默 发表于 2022-3-8 20:35
大佬,return f"{}and{}"是什么形式的返回方式
f-string的字符串格式化方式,python 格式化字符串的方式你可以看一下这个:
https://mp.weixin.qq.com/s/mpjDJ50T5ZjskKIIZO6_vQ 风百默 发表于 2022-3-8 20:35
大佬,return f"{}and{}"是什么形式的返回方式
你试一下这个:# 将 0 ~ 9 的数字转换成英文
def unit_to_word(u):
words = {
0: 'zero', 1: 'one', 2: 'two', 3: 'three',
4: 'four', 5: 'five', 6: 'six', 7: 'seven',
8: 'eight', 9: 'nine'
}
return words
# 将 10 ~ 19,20 ~ 99 的十位部分数字转换成英文
def tens_to_word(t):
words = {
10: 'ten', 11: 'eleven', 12: 'twelve',
13: 'thirteen', 14: 'fourteen', 15: 'fifteen',
16: 'sixteen', 17: 'seventeen', 18: 'eighteen',
19: 'nineteen', 20: 'twenty', 30: 'thirty',
40: 'forty', 50: 'fifty', 60: 'sixty',
70: 'seventy', 80: 'eighty', 90: 'ninety'
}
if 10 <= t < 20 or not t % 10:
return words
else:
a, b = divmod(t, 10)
return words + ' ' + unit_to_word(b)
# 将 百位数字转换成英文
def hundreds_to_word(h):
if h <10:
return unit_to_word(h)
elif 10 <= h < 100:
return tens_to_word(h)
elif h % 100 == 0:
return f"{unit_to_word(h//100)} hundred"
else:
a, b = divmod(h, 100)
if b < 10:
return f"{unit_to_word(a)} hundred and {unit_to_word(b)}"
else:
return f"{unit_to_word(a)} hundred and {tens_to_word(b)}"
print(hundreds_to_word(99)) isdkz 发表于 2022-3-7 00:01
数字转英文:
大佬,这个第八行和16行为什么要用个循环,这是什么意思
风百默 发表于 2022-3-8 22:05
大佬,这个第八行和16行为什么要用个循环,这是什么意思
为了计算特定日期到公元 1 年 1 月 1日距离多少天
页:
[1]