首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3掩码字符串

Python3掩码字符串
EN

Stack Overflow用户
提问于 2021-10-12 12:36:54
回答 1查看 37关注 0票数 0

我正在尝试解决python3中的一个练习,但我不能让它工作。

我有这样的代码:

代码语言:javascript
复制
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

我是这样运行它的:

代码语言:javascript
复制
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)) 

当我运行它时,我得到了这个错误:

代码语言:javascript
复制
line 131, in multiply_str new_multiply_str = string3 * int(masking_string) 
ValueError: invalid literal for int() with base 10: '' 

我真的很感谢一些帮助,并请在解释的时候简化它,因为我是python的新手,仍然不知道如何做很多事情。

EN

回答 1

Stack Overflow用户

发布于 2021-10-12 12:42:50

代码语言:javascript
复制
line 131, in multiply_str new_multiply_str = string3 * int(masking_string) 
ValueError: invalid literal for int() with base 10: '' 

因此,您的masking_string是"“,它不是有效的数字(整数或非整数)。您必须在未输入数字的情况下按enter键。

如果你想防止这种情况,把你的输入例程包装在一个循环中,只有当你有一个数字时才返回:

代码语言:javascript
复制
def get_int():
    while True:
        x = input("Number: ")
        try:
            return int(x)
        except ValueError:
            print(f"Invalid input {x}, try again...")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69540679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档