python之字符ASCII码的幸运数字~clash of coding

题目描述

幸运数字,只需计算输入字符中每个字符的字母位置(A为1,B为2…Z为26)的所有数字之和,直到总和的长度等于1。(这里的1代表一个字符的长度)
大写和小写字母被视为相同,字母表中没有的所有内容都将被忽略:例如“john”:
john => 10 + 15 + 8 +14 = 47
47 => 4+ 7 => 11
11 => 1 + 1 = > 2
john的幸运数字是2

输入
行 1:一串 ascii 字符。
输出
第 1 行:对应于幸运数字的整数
输入
john
输出
2

代码效果

知识点准备

string.ascii_letters.index(i)

.index(i)返回下标值

import string
string.ascii_uppercase 所有大写字母
string.ascii_lowercase 所有小写字母
string.ascii_letters 所有字母
string.digits 所有数字

Python isalpha() 方法检测字符串是否只由字母组成。

如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。

Python lower() 方法转换字符串中所有大写字符为小写。

代码一

# -*- codeing = utf-8 -*-
# @Time :2022/5/17
# @Author :季白九月
# @File :1.py
# @Software: PyCharm
a=sum(ord(x)-96for x in input().lower()if'`'<x<'{')
while a>9:a=sum(int(x)for x in str(a))
print(a)

代码二

import string as s
n=input().lower()
x=sum([s.ascii_letters.index(i)+1for i in n if i.isalpha()])
while x>9:x=sum([int(i)for i in str(x)])
print(x)

代码三

a = 0
for x in input().lower():
    if'`'<x<'{':
        a+=(ord(x)-96)
while a>9:a=sum(int(x)for x in str(a))
print(a)

效果

jhon
2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值