如何将用户输入格式化为不同的输出?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))

输出:

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

添加到@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))

如果要从输入字符串中打印超过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个字符,则应添加一个复选框。

最新更新