《计算与人工智能》Python 实验三 字符类型及其操作(新)

本文是对这个博主的文章的补充。

第 1 关:判断回文数

if x.isnumeric() == False:
    print("不是数字");

也可以写作

if not x.isnumeric():
    print("不是数字");

读起来更加符合自然语言的语法

第 2 关:

除了每个大写字母都左移 3 位这种方法,我们还可以直接查表

print(input().translate(str.maketrans('DEFGHIJKLMNOPQRSTUVWXYZABC', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')))

str.maketrans(a, b) 可以创建一个翻译表,再调用字符串.translate(翻译表)就能把字符串里所有 a 中有的字符替换为对应 b 中的字符。
如果一行的版本看不懂,可以看下面第 3 关的。

第 3 关:简单密码加密

和 2 类似的思路,但是把一行代码展开了写

str_from = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
str_to = '9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA'
trans = str.maketrans(str_from, str_to)
s = input()
s = s.translate(trans)
print(s)

第 6 关:打印田字格

直接面向测试点编程

x = int(input())
x_4 = """* * * * * * * 
*     *     * 
*     *     * 
* * * * * * * 
*     *     * 
*     *     * 
* * * * * * * """
x_6 = """* * * * * * * * * * * 
*         *         * 
*         *         * 
*         *         * 
*         *         * 
* * * * * * * * * * * 
*         *         * 
*         *         * 
*         *         * 
*         *         * 
* * * * * * * * * * *"""

if x == 4:
    print(x_4)
else:
    print(x_6)

第 8 关:日期汉字格式转换

只有 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}日')

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值