繁体   English   中英

编写一个 python 程序,通过循环查找数字的第一位和最后一位的总和

[英]Write a python program to find sum of first and last digit of a number by using loop

您好,我是编码新手,只是学习编码的一些基础知识,任何人都可以帮助我解决这个问题:-我编写了一个代码来使用循环查找第一个和最后一个术语,但无法添加它们,代码如下所示

n = input("enter your number:-")

#By loop 

if (n.isnumeric):
    for i in range(len(n)):
        if i == 0:
            print(f" your first digit of the number is {n[0]}")
        elif i== len(n)-1:
            print(f" your last digit of the number is {n[-1]}")
else:
    print("Please enter a number and try again!")

请有人可以修改此代码以找到第一个数字和最后一个数字的总和吗? 谢谢你:)

实际上,您非常接近您正在寻找的答案,只有一些错误需要更正。 查看修改后的版本,并检查?

注意- 这是为了遵循 OP 的想法,并进行最小的更改。
当然,有许多替代方法可以实现它(以及更多的无效输入错误检查,但那是另一个故事/练习)。


n = input("enter your number:-")    # ex. 123 

#By loop 

if (n.isnumeric()):                # calling the method:  isnumeric()
    for i in range(len(n)):
        if i == 0:
            first = n[0]          # assign it to first digit
            print(f" your first digit of the number is {n[0]}")
        elif i == len(n)-1:
            last = n[len(n) -1]   # assign it to last digit
            print(f" your last digit of the number is {n[-1]}") # convert to integer

print(f' the sum of first and last digits: {int(first)+int(last)} ')
# 4      <- given input 123

您已经知道如何获取序列中的最后一项 - 即 n[-1]

因此,使用循环是无关紧要的。

但是,您需要做的是检查两件事。

  1. 输入的长度是否至少为 2 个字符?
  2. 输入是否完全由十进制字符组成

这使:

inval = input('Enter a number with at least 2 digits: ')

if len(inval) > 1 and inval.isdecimal():
    first = inval[0]
    last = inval[-1]
    print(f'Sum of first and last digits is {int(first)+int(last)}')
else:
    print('Input either too short or non-numeric')

另一种有趣的方法是使用map()和一些解包来处理输入:

inval = input('Enter a number with at least 2 digits: ')

if len(inval) > 1 and inval.isdecimal():
    first, *_, last = map(int, inval)
    print(f'Sum of first and last digits is {first+last}')
else:
    print('Input either too short or non-numeric')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM