gpt4 book ai didi

python - python中每第二个数字加倍

转载 作者:行者123 更新时间:2023-12-01 01:08:47 25 4
gpt4 key购买 nike

我想将每第二个数字的值加倍,然后将十位数字相加。最后将所有数字相加例如:123456789 -> 1 4 3 8 5 12 7 16 9 -> 1 4 3 8 5 3 7 7 9 -> 47

编辑:用户输入任何数字,该功能仍然有效,例如:5153 -> 5 2 5 6 -> 18

-对不起,第一篇文章我还在习惯这一点-所以我希望我的功能
1.将输入的数字反转
2. 将第二位数字的值加倍
3. 将所有数字相加
4. 检查是否能被7整除

这是我到目前为止的代码

my testing
def 校验和(num):

#print(rev)
odd_digit = ""
even_digit = ""
even_sum = 0
odd_sum = 0
total_sum = 0

if num < 10 and num != 7:
return False
else:
return True

rev = (num[::-1])
for i in range(len(rev)):
if i % 2 == 0:
odd_digit += rev[i]
else:
even_digit += rev[i]

#print(even_digit)
even_digit = int(even_digit)
while even_digit > 0:
even_digit, even_sum = even_digit//10,even_sum+(even_digit%10)
#print(even_sum)
even_sum_2 = even_sum * 2
#print(even_sum_2)

odd_digit = int(odd_digit)
while odd_digit > 0:
odd_digit, odd_sum = odd_digit//10,odd_sum+(odd_digit%10)
#print(odd_sum)

total_sum = even_sum_2 + odd_sum
#print(total_sum)

if total_sum % 7 == 0:
return True
else:
return False

打印(校验和(12345678901))

最佳答案

尝试将此 summap 和列表理解一起使用:

>>> sum(map(int,''.join([str(int(v)*2) if i%2 else v for i,v in enumerate(s)])))
47

或者使用:

>>> sum([sum(map(int,str(int(v)*2))) if i%2 else int(v) for i,v in enumerate(s)])
47

关于python - python中每第二个数字加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55074365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com