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]

浙公网安备 33010602011771号