【问题标题】:Printing a formatted dictionary in Python without using JSON, pandas, numpys在不使用 JSON、pandas、numpys 的情况下在 Python 中打印格式化字典
【发布时间】:2023-02-23 14:41:28
【问题描述】:

这是一项任务,因此存在局限性。

这是我的词典:

{'A': 44.0, 'B': 79.0, 'C': 60.0,
 'D': 56.0, 'E': 46.0, 'F': 50.0,
 'G': 65.0, 'H': 45.0, 'I': 38.0,
 'J': 49.0, 'K': 51.0, 'L': 36.0,
 'M': 48.0, 'N': 55.0, 'O': 56.0,
 'P': 53.0, 'Q': 41.0, 'R': 58.0,
 'S': 65.0, 'T': 36.0, 'U': 23.0,
 'V': 49.0, 'W': 46.0, 'X': 48.0,
 'Y': 54.0, 'Z': 52.0, 'a': 63.0,
 'b': 55.0, 'c': 37.0, 'd': 55.0,
 'e': 63.0, 'f': 58.0, 'g': 40.0,
 'h': 31.0, 'i': 36.0, 'j': 50.0,
 'k': 51.0, 'l': 36.0, 'm': 32.0,
 'n': 58.0, 'o': 50.0, 'p': 55.0,
 'q': 55.0, 'r': 53.0, 's': 61.0, 
 't': 57.0, 'u': 37.0, 'v': 33.0, 
 'w': 59.0, 'x': 53.0, 'y': 54.0,
 'z': 39.0, '!': 35.0, '&': 65.0,
 '*': 65.0, '$': 65.0, '#': 64.0,
 '.': 30.0, ',': 36.0, '<': 38.0,
 '>': 38.0, '?': 45.0, '@': 65.0}

我如何打印出来?

这是我目前所拥有的,它以 3 条漂亮的线条打印出来,但不太理想。您可以忽略 fontPricing,因为它仅用于更改每个字符的价格。

def showPricing(charPricing, fontPricing):
    fontsize = int (input("Enter font size: "))
    print (f'Pricing for font size {fontsize}pts')
    for k, v in charPricing.items():
        print (k, math.ceil(v * fontPricing[fontsize]), end = ('\t\t\t\t')) 

【问题讨论】:

  • 有点乱,但这样的事情可能会让你朝着正确的方向前进[[[charPricing[list(charPricing.keys())[y*7+x]],list(charPricing.keys())[y*7+x]] for x in range(7)] for y in range(9)]
  • 请将文本粘贴为文本,不是图像。

标签: python python-3.x


【解决方案1】:

下面显示的是一种可能的解决方案。请注意,通过指定输出表中的列数,我们能够一次打印一个单元格并计算字符定价字典中相应键的位置。

import math

char_price = {'A': 44.0, 'B': 79.0, 'C': 60.0, 'D': 56.0, 'E': 46.0, 'F': 50.0, 'G': 65.0, 'H': 45.0, 'I': 38.0, 'J': 49.0, 'K': 51.0, 'L': 36.0, 'M': 48.0, 'N': 55.0, 'O': 56.0, 'P': 53.0, 'Q': 41.0, 'R': 58.0, 'S': 65.0, 'T': 36.0, 'U': 23.0, 'V': 49.0, 'W': 46.0, 'X': 48.0, 'Y': 54.0, 'Z': 52.0, 'a': 63.0, 'b': 55.0, 'c': 37.0, 'd': 55.0, 'e': 63.0, 'f': 58.0, 'g': 40.0, 'h': 31.0, 'i': 36.0, 'j': 50.0, 'k': 51.0, 'l': 36.0, 'm': 32.0, 'n': 58.0, 'o': 50.0, 'p': 55.0, 'q': 55.0, 'r': 53.0, 's': 61.0, 't': 57.0, 'u': 37.0, 'v': 33.0, 'w': 59.0, 'x': 53.0, 'y': 54.0, 'z': 39.0, '!': 35.0, '&': 65.0, '*': 65.0, '$': 65.0, '#': 64.0, '.': 30.0, ',': 36.0, '<': 38.0, '>': 38.0, '?': 45.0, '@': 65.0}
font_price = {24: 1}

def showPricing(charPricing, fontPricing, num_col=7):
    fontsize = int (input("Enter font size: "))
    title = f'Pricing for font size {fontsize}pts'
    print (title)
    print('=' * len(title))
    keys = list(charPricing.keys())
    row = 0
    for row in range(math.ceil(len(charPricing) / num_col)):
        for col in range(num_col):
            k = keys[num_col * row + col]
            print(k, math.ceil(charPricing[k] * fontPricing.get(fontsize, 0)), end='	')
        print()  # new line
    
showPricing(char_price, font_price)

【讨论】:

    猜你喜欢
    • 2022-01-27
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    相关资源
    最近更新 更多