首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python -格式化元组/字符串

Python -格式化元组/字符串
EN

Stack Overflow用户
提问于 2018-08-21 03:36:20
回答 2查看 344关注 0票数 0

对于我正在拼命努力的课程作业,我尝试将输入设置到字典中,然后使用它来格式化和打印字符串,使其显示如下所示。

Surname,别名Payroll Department Salary该名称应使用上面显示的格式显示,因此您需要创建一个包含此格式的名称的字符串,并将其打印在固定宽度的字段中。您可能会假设,以此格式显示时,名称不会超过30个字符,部门不会超过15个字符,工资总额数字将最多包含5位数字,并且所有薪水都将是小于100,000的整数。

到目前为止,我只做到了这一点,因为每次我修改第9行时,它都会返回一个错误,指出“元组索引必须是整数或切片,而不是字符串”,但我不知道如何做到这一点。

代码语言:javascript
复制
payroll = int(input("Enter your Payroll.")) 
department = input("Enter your Department Name.") 
salary = int(input("Enter your Salary."))
forename = input("Enter your Forename.")
surname = input("Enter your Surname.")

list_lect = payroll, department, salary, forename, surname

str = '{0[4]},{0[3]}{0[0:5]} {0[2]}    {0[3]}'.format(list_lect)

print(str)

如果有人在努力使用python,那么任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-21 03:57:41

虽然让一个打印函数按照您想要的方式打印是很简单的:

代码语言:javascript
复制
a = ('Surname', 'Forename', 'Payroll', 'Department', 'Salary')
def printer(tup):
        print_string = str("(")
        pad = 24
        print_string += ", ".join(tup[:2]).ljust(pad)
        print_string += ", ".join(tup[2:4]).ljust(pad)
        print_string += tup[-1] + ")"
        print(print_string)

>>> printer(a)
(Surname, Forename       Payroll, Department     Salary)

我建议用一种不同的方式来处理这件事会更干净。也许我可以建议分别接受这些值,然后以命名的方式将它们组合在一起。像这样

代码语言:javascript
复制
payroll = input("Enter your Payroll.") 
department = input("Enter your Department Name.") 
salary = input("Enter your Salary.")
forename = input("Enter your Forename.")
surname = input("Enter your Surname.")

然后,您可以执行所需的任何分组,并以更合理的方式打印它们

代码语言:javascript
复制
print("%s, %s      %s, %s     %s" % (surename, forename, .....etc)

然后,您可以将它们存储在一个有意义的数据结构中

票数 0
EN

Stack Overflow用户

发布于 2018-08-21 03:47:30

你为什么需要这个?据我所知,打印带有间距的元组是不可能的,但我相信有另一种方法可以实现你想要的结果。除此之外,还有一种工作要做,尽管你不是在打印元组。

代码语言:javascript
复制
indexs = {
    payroll = 0,
    dept = 1,
    salary = 2,
    name = 3,
    surname = 4
}
str = "('{surname}', '{name}'      '{payroll}', '{dept}'      
'{salary}')".format(surname = z[indexs[surname]], name = z[indexs[name]], 
payroll = z[indexs[payroll]], dept = z[indexs[dept]], salary = 
z[indexs[salary]])
print(str)

这并不完美,因为它只是字符串格式,但如果你想让你的输出看起来与你所说的完全一样,这是唯一的方法。当然,您的目标可能非常不同。不管怎样,希望这能帮上忙

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51937449

复制
相关文章

相似问题

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