python加法2位数字

python加法2位数字,python,binary,Python,Binary,我在学习算法。练习包括输入两位数(介于10和99之间),然后将两位数相加。我用python做的,而且很有效,但是我的老师说有另一种方法可以不用我正在使用的转换。你能帮助我吗?有更好的办法吗?谢谢 for i in range(5): add = 0 num = input("Number: ") num = int(num) if num > 9 and num < 100: num = str(num) add = i

我在学习算法。练习包括输入两位数(介于10和99之间),然后将两位数相加。我用python做的,而且很有效,但是我的老师说有另一种方法可以不用我正在使用的转换。你能帮助我吗?有更好的办法吗?谢谢

for i in range(5):
    add = 0
    num = input("Number: ")
    num = int(num)
    if num > 9 and num < 100:
        num = str(num)
        add = int(num[0]) + int(num[1])
        print("The addition of the two digits is: " + str(add))
    else:
        print("It is not a two digit number.")
范围(5)内的i的
:
相加=0
num=输入(“数字:”)
num=int(num)
如果num>9且num<100:
num=str(num)
add=int(num[0])+int(num[1])
打印(“两位数字相加为:“+str(add))
其他:
打印(“它不是两位数。”)
我想他的意思是:

(num // 10) + (num % 10)
使用
num//10
可以对10进行整数除法。但这是第一个数字。使用
num%10
可以得到除法的剩余部分,即第二位数字。例如:

>>> 67 // 10
6
>>> 67 % 10
7
>>> divmod(67, 10)
(6, 7)
>>> sum(divmod(67, 10))
13
最简洁的方式必须是:

sum(divmod(num, 10))
因为
divmod
执行10的整数除法,同时查找余数。所以用
sum
我们得到这两个数字的和。例如:

>>> 67 // 10
6
>>> 67 % 10
7
>>> divmod(67, 10)
(6, 7)
>>> sum(divmod(67, 10))
13

我想这就足够了。

你所说的转换是什么意思?你可以不用先转换到
int
再转换回
str
。你能补充一些解释吗?@edTarik现在可以了吗?非常感谢。现在,如果我作为程序员使用我的代码,我做错了吗?我知道程序员必须简化事情,但是如果我不知道最好的答案,用我自己的方式去做,那会不会很糟糕呢?谢谢,当然不是。成为一名优秀的程序员是一个过程,一个很好的要素是尝试自己解决问题。“如果我们不允许自己也学习其他的练习,那就错了。”“阿列克斯普雷兹蒙,你是自己做的,这在我看来是至关重要的。坚持下去!除非您使用的是旧的Python2版本,否则num/10将返回一个float,这不是您想要的。啊,很抱歉。编辑它。