如何提高该程序的可读性?

How to improve this program's readability?

提问人:Hazel P 提问时间:7/23/2023 最后编辑:Hazel P 更新时间:7/24/2023 访问量:59

问:

我正在学习 Python 字典的基础知识,并正在练习在列表中嵌套字典。它基本上告诉我制作 3 本关于 3 个人的词典,将它们嵌套在一个列表中,循环遍历列表,并打印出每个人的信息。 我已经有了我想要的输出,但我的打印语句很难阅读很多\n。您能提出其他提高可读性的方法吗?

我的代码:

friend_1 = {
    "first_name": "Tu",
    "last_name": "Le",
    "age": 18,
    "city": "Hanoi"
}

friend_2 = {
    "first_name": "Hao",
    "last_name": "Do",
    "age": 18,
    "city": "Hanoi"
}

friend_3 = {
    "first_name": "Hieu",
    "last_name": "Tran",
    "age": 18,
    "city": "HCMC"
}

friends = [friend_1, friend_2, friend_3]

for friend in friends:
    print(f"\nFirst name: {friend['first_name'].title()}\nLast name: {friend['last_name'].title()}\nAge: {friend['age']}\nCity: {friend['city'].title()}")

输出如下所示:

First name: Tu
Last name: Le
Age: 18
City: Hanoi
Python 字典 可读性

评论

0赞 Nick ODell 7/23/2023
您可以将它们拆分为单独的打印语句。F.D.(英语:F.D.) 与下一行的相同。print("first\nsecond")print("first")print("second")
0赞 Kurtis Rader 7/24/2023
请不要将屏幕截图用于纯文本信息。将文本复制/粘贴到问题中。
0赞 Hazel P 7/24/2023
我明白了,@KurtisRader。我确实粘贴了文本,但它们只是出现在 1 行中,而不是像实际输出那样出现在多行中。
0赞 Kurtis Rader 7/24/2023
@HazelP,在文字文本的上方和下方放置一行三个反引号 - 就像代码块一样。

答:

1赞 Sayse 7/23/2023 #1

假设问题出在 print 语句中的显示方式,您可以利用 print 可以接受大量参数进行打印的事实,然后指定一个 arator,该 arator 可用于定义如何分离包含在 print 语句中的所有单个元素sep

print(
     f"First name: {friend['first_name'].title()}",
     f"Last name: {friend['last_name'].title()}",
     f"Age: {friend['age']}",
     f"City: {friend['city'].title()}",
     sep="\n"
)
1赞 cao-nv 7/24/2023 #2

我知道你得到了预期的答案,但我还是想给你一个小例子,说明如何控制打印数据结构的方式,以及如何避免重复使用某个字符。

class Person:
    def __init__(self, first_name: str, last_name: str, age: int, city: str):
        self.dict = {"first_name": first_name, 
                     "last_name": last_name, 
                     "age": age, 
                     "city": city}
        
    def __str__(self):
        s = "\n".join([f'Fist name: {self.dict["first_name"].title()}',
                       f'Last name: {self.dict["last_name"].title()}',
                       f'Age: {self.dict["age"]}',
                       f'City: {self.dict["city"]}'])
        return s

friend_1 = Person("Hieu", "Tran", 18, "HCMC")

print(friend_1)