1.输出菱形;2.凯撒密码的实现;3.正则表达式

目录

 

任务1:编写代码,输出由星号(*)组成的三角形图形,并且可以灵活的控制图案的大小。( 改进:输出菱形图像 )

思路:

参考代码:

运行结果:

任务2:编写一个程序,要求输入一个字符串,然后输入一个整数作为凯撒加密算法的密钥,输出字符串加密后的结果

相关知识:

思路:

参考代码:

运行结果:

任务3:利用正则表达式编写一个程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词

参考代码1:

运行结果1:

参考代码2:

运行结果2:


任务1:编写代码,输出由星号(*)组成的三角形图形,并且可以灵活的控制图案的大小。( 改进:输出菱形图像 )

思路:首先使用一个for循环输出菱形的上半部分,然后再使用一个for循环输出菱形的下半部分;其中center()是字符串排版方法,参数n**7表示排版后字符串长度。

参考代码:

n = int(input('输入一个整数:'))
for i in range(n):
    print(('* '*i).center(n*7))
for i in range(n,0,-1):
print(('* '*i).center(n*7))

运行结果:

任务2:编写一个程序,要求输入一个字符串,然后输入一个整数作为凯撒加密算法的密钥,输出字符串加密后的结果

相关知识:凯撒加密算法,是指把原始字符串中的每个英文字母都使用它在字母表中后面第k个字母进行替换,是一种比较经典的加密算法

思路:把小写字母和大写字母分别循环左移k位,然后根据循环移位(借助于切片实现循环移位)之前和之后的字符串构造映射表,最后使用这个映射表给对定的字符串进行替换。

参考代码:

import string
def kaisa():
    s = input('请输入一个字符串:')
    k = int(input('请输入一个整数来作为秘钥:'))

    lower = string.ascii_lowercase
    upper = string.ascii_uppercase
    before = string.ascii_letters
    after = lower[k:] + lower[:k] + upper[k:] + upper[:k]
    table = str.maketrans(before,after)
    out = s.translate(table)

    print(out)
kaisa()

运行结果:

任务3:利用正则表达式编写一个程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词

参考代码1:

import re
w = input('请输入一段英文:')
s = re.split('[\. ]',w)
l = ','.join(s)
print(re.findall(r'\b[a-zA-Z]{3}\b',l))

运行结果1:

参考代码2:

import re
w = input('请输入单词:')
l=re.compile(r'\b[a-zA-Z]{3}\b')
print(l.findall(w))

运行结果2:

需要了解的相关知识:search()和match()都只匹配一次;match()必须从第一位开始匹配(包含是无效的);而search()是只要这段字符中有能够正则匹配上的就成功。findall()匹配成功就返回列表,可以匹配多次

有关正则表达式的链接如下:

在线测试正则表达式:  https://regexr-cn.com/

练习正则表达式: 编程胶囊-打造学习编程的最好系统

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值