繁体   English   中英

如何将用户输入格式化为不同的输出?Python

[英]How to format a user input into a different out put?Python

如何从一个输入(10个数字): XXXXXXXXXX

转换成: X.XX.XX.XX.XXXX

到目前为止,这是我的代码:

creat_number_account = input("Account Number:")

def c_n_account(creat_number_account):
    
    if len(creat_number_account) <10:
        print("This account require 10 numbers")
        
    elif n_list[10] == "0":
            print("The last number can't be: '0'")
    else:
        list =[]
        for n in creat_number_account:
            list+= n
        print(f'{list [0]}.{list[1][2]}.'
    f'{list[3][4]}.{list[5][6]}.{list[7][8][9][-1]}')

print(c_n_account(creat_number_account))

OUTPUT:

print(f'{list [0]}.{list[1][2]}.'
IndexError: string index out of range

如果要从输入字符串中打印多于 1 个字符,则可以使用creat_number_account[1:3] 这样的事情应该适合你:

creat_number_account = input("Account Number:")

def c_n_account(creat_number_account):
    if len(creat_number_account) <10:
        print("This account require 10 numbers") 
    elif creat_number_account[10] == "0":
        print("The last number can't be: '0'")
    else:
        print(f'{creat_number_account[0]}.{creat_number_account[1:3]}.{creat_number_account[3:5]}.{creat_number_account[5:7]}.{creat_number_account[7:]}')

如果输入大于 10 个字符,您应该添加检查。

添加@Sefan 的回答,不断提示用户,直到收到正确的格式:

n = input("Account Number:")

def c_n_account(n):
    while True:
        if len(n) < 10 or len(n) > 10:
            print("This account requires 10 numbers only")
            n = input("Account Number:")
            continue            
        elif n[9] == "0":
             print("The last number can't be: '0'")
             n = input("Account Number:")
             continue    
        else:
            act = f"{n[0]}.{n[1:3]}.{n[3:5]}.{n[5:7]}.{n[7:]}{n[-1]}"
            return act
            break
        
    

print(c_n_account(n))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM