本文是对这个博主的文章的补充。
if x.isnumeric() == False:
print("不是数字");
也可以写作
if not x.isnumeric():
print("不是数字");
读起来更加符合自然语言的语法
除了每个大写字母都左移 3 位这种方法,我们还可以直接查表
print(input().translate(str.maketrans('DEFGHIJKLMNOPQRSTUVWXYZABC', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')))
str.maketrans(a, b)
可以创建一个翻译表,再调用字符串.translate(翻译表)
就能把字符串里所有 a 中有的字符替换为对应 b 中的字符。
如果一行的版本看不懂,可以看下面第 3 关的。
和 2 类似的思路,但是把一行代码展开了写
str_from = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
str_to = '9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA'
trans = str.maketrans(str_from, str_to)
s = input()
s = s.translate(trans)
print(s)
直接面向测试点编程
x = int(input())
x_4 = """* * * * * * *
* * *
* * *
* * * * * * *
* * *
* * *
* * * * * * * """
x_6 = """* * * * * * * * * * *
* * *
* * *
* * *
* * *
* * * * * * * * * * *
* * *
* * *
* * *
* * *
* * * * * * * * * * *"""
if x == 4:
print(x_4)
else:
print(x_6)
只有 1-31 的数字,完全可以写一个对照表出来
date = input()
mapping ={
'0': '零',
'1' : '一',
'2' : '二',
'3' : '三',
'4' : '四',
'5' : '五',
'6' : '六',
'7' : '七',
'8' : '八',
'9' : '九',
'10' : '十',
'11' : '十一',
'12' : '十二',
'13' : '十三',
'14' : '十四',
'15' : '十五',
'16' : '十六',
'17' : '十七',
'18' : '十八',
'19' : '十九',
'20' : '二十',
'21' : '二十一',
'22' : '二十二',
'23' : '二十三',
'24' : '二十四',
'25' : '二十五',
'26' : '二十六',
'27' : '二十七',
'28' : '二十八',
'29' : '二十九',
'30' : '三十',
'31' : '三十一'
}
year, month, day = date.split('/')
year = ''.join([mapping[n] for n in list(year)]) # 年份逐字翻译
month = mapping[month]
day = mapping[day]
print(f'{year}年{month}月{day}日')