End Zeros

题目:
Try to find out how many zeros a given number has at the end.

Input: A positive Int

Output: An Int.

Example:

end_zeros(0) == 1
end_zeros(1) == 0
end_zeros(10) == 1
end_zeros(101) == 0

解答:

def end_zeros(num: int) -> int:
    # your code here
    return len(s:=str(num))-len(s.rstrip('0'))


if __name__ == '__main__':
    print("Example:")
    print(end_zeros(0))

    # These "asserts" are used for self-checking and not for an auto-testing
    assert end_zeros(0) == 1
    assert end_zeros(1) == 0
    assert end_zeros(10) == 1
    assert end_zeros(101) == 0
    assert end_zeros(245) == 0
    assert end_zeros(100100) == 2
    print("Coding complete? Click 'Check' to earn cool rewards!")

知识点

海象运算符(海象运算符是在 PEP 572 被提出的,直到 3.8 版本合入发布)
用法一
if (num:= 2) > 1:
    print("ok")
================
不适用海象运算符
num=2
if (num) > 1:
    print("ok")
 
用法二
file = open("demo.txt", "r")
while (line := file.readline()):
    print(line.strip())
================
file = open("demo.txt", "r")
while True:
    line = file.readline()
    if not line:
        break
    print(line.strip())

用法三
fat_bmis = [bmi for m in members if (bmi := get_bmi(m)) > 24] 减少函数调用次数
================
fat_bmis = [get_bmi(m) for m in members if get_bmi(m) > 24]
posted @ 2021-12-27 15:17  beginner_z  阅读(35)  评论(0)    收藏  举报