输入个人姓名的全拼,输出一串数字,该串数字是由每个字母的序号连接起来的。字母序号从01起算,即a为01,b为02……
例如:姓名为李四,输入为 lisi,则 l 属于第11个字母,i 属于第09个字母,s 属于第19 ,因此输出为110919
获取字符串后,遍历每个字符,然后打印其对应的序号即可。
不过,根据题目a的序号为1这一条,输出字符'l'的序号应为12,而不是11,不知道是不是哪里出错了。
代码如下:
参考链接:
name=input("请输入姓名的全拼:") # 从输入获取一个姓名全拼的字符串
# https://www.py.cn/jishu/jichu/30507.html
name = name.lower() # 将输入的字符串都转为小写,以便下面计算序号
for ch in name: # 遍历姓名字符串中每一个字符
# https://blog.csdn.net/dm1901/article/details/129898839
# http://ascii.wjccx.com/
# 把当前字符的ascii码 减去 字符'a'的asci码,再加1,以求出字符的序号
code=ord(ch)-ord('a')+1
#print("code=",code)
# https://blog.csdn.net/oJinGangZuan/article/details/127165067
# 每个序号两个占位的宽度,一位数序号打印一个前导0
print('%02d'%(code),end="")
你可以使用 Python 的内置函数 ord() 和字符串拼接来实现这个需求。ord() 函数用于获取一个字符的 ASCII 码值,然后你可以将其转换为两位数的字符串表示形式,并将每个字符的字符串连接起来。以下是一个示例代码:
name = input("请输入您的姓名全拼:")
# 将姓名中每个字符的 ASCII 码值转换为字符串,并拼接在一起
result = "".join([f"{ord(c)-96:02}" for c in name.lower() if c.isalpha()])
print(result)
在这个示例中,我们首先使用 input() 函数获取用户输入的全拼姓名,然后使用列表推导式和 join() 方法将每个字母的 ASCII 码值转换为两位数的字符串表示形式,并将它们连接起来。lower() 方法将输入的姓名转换为小写字母,以便在计算 ASCII 码值时,忽略大写字母和小写字母之间的差异。isalpha() 方法用于过滤掉姓名中的非字母字符。
例如,如果用户输入的姓名是 "LiSi",则输出结果为:"110919"。
该程序首先定义了一个encrypt函数,该函数接收一个字符串参数name,并返回一个数字序列字符串。在函数中,我们遍历输入字符串的每个字符,如果该字符是字母,则计算其对应的序号并将其添加到结果字符串中。使用ord函数可以获取字符的ASCII码值,然后通过减去96来计算出字母的序号。使用zfill函数可以将单个数字填充为两位数。最后,我们从用户输入中获取姓名的全拼,并调用encrypt函数将其加密为数字序列,并将结果输出。
def encrypt(name):
result = ""
for letter in name:
if letter.isalpha():
index = ord(letter.lower()) - 96
result += str(index).zfill(2)
return result
name = input("请输入姓名的全拼:")
print(encrypt(name))