我正在尝试解决python3中的一个练习,但我不能让它工作。
我有这样的代码:
def mask_string(string3):
"""Mask string"""
s = string3[-4:].rjust(len(string3), "#")
masking_string = ""
string3_length = len(s)
result = multiply_str(masking_string, string3_length) + s
return result
def multiply_str(string3, masking_string):
"""Mulitply string"""
new_multiply_str = string3 * int(masking_string)
return new_multiply_str我是这样运行它的:
elif choice == "10":
string3 = input("Enter a string that will replace all of the caracters with # exept the 4 last ones: ")
print(marvin.mask_string(string3))
masking_string = input("Enter number: ")
print(marvin.multiply_str(string3, masking_string)) 当我运行它时,我得到了这个错误:
line 131, in multiply_str new_multiply_str = string3 * int(masking_string)
ValueError: invalid literal for int() with base 10: '' 我真的很感谢一些帮助,并请在解释的时候简化它,因为我是python的新手,仍然不知道如何做很多事情。
发布于 2021-10-12 12:42:50
line 131, in multiply_str new_multiply_str = string3 * int(masking_string)
ValueError: invalid literal for int() with base 10: '' 因此,您的masking_string是"“,它不是有效的数字(整数或非整数)。您必须在未输入数字的情况下按enter键。
如果你想防止这种情况,把你的输入例程包装在一个循环中,只有当你有一个数字时才返回:
def get_int():
while True:
x = input("Number: ")
try:
return int(x)
except ValueError:
print(f"Invalid input {x}, try again...")https://stackoverflow.com/questions/69540679
复制相似问题