Python 3 ASCII代码219问题

时间:2017-05-17 19:48:54

标签: python python-3.x ascii

我将代码与其他训练示例代码进行了比较并进行了比较,并且所有内容都匹配。这是我的问题:我有一个健康栏,当我受到伤害时,栏会减少。

问题是,在我的代码中,我使用█管道线后,条形码永远不会停留,它总是动态移动。当我使用/管道栏始终保持放置,没有问题。我猜我的终端工具中有一些东西(使用Pycharm),它不喜欢ascii代码219.如果它在阅读论坛上很重要,那么工具设置为UTF-8。下面的示例可能无法正确格式化但顶部可以看到|使用█时移动,使用/时底部部分正常。

enter image description here

                   ______________________________           __________ 
CARLOS:    2210/3260 |■■■■■■■■■■■■■■■■■        |   132/132 |//////////|    

                      __________________                  __________ 
CARLOS:    2219/3260 |///////////////// |        132/132 |//////////|

代码:

def get_stats(self):
    hp_bar = ""
    bar_ticks = (self.hp / self.maxhp) * 100 / 4

    mp_bar = ""
    mp_ticks = (self.mp / self.maxmp) * 100 / 10

    while bar_ticks > 0:
        hp_bar += '█'
        bar_ticks -= 1

    #num_spaces_needed = (100/4) - len(hp_bar)
    #str_spaces_needed = ""
    #while num_spaces_needed > 0:
        #str_spaces_needed += " "
        #num_spaces_needed -= 1

    while len(hp_bar) < 25:
        hp_bar += " "

    while mp_ticks > 0:
        mp_bar += "/"
        mp_ticks -= 1

    while len(mp_bar) < 10:
        mp_bar += " "

    hp_string = str(self.hp) + "/" + str(self.maxhp)
    current_hp = ""

    if len(hp_string) < 9:
        decreased = 9 - len(hp_string)

        while decreased > 0:
            current_hp += " "
            decreased -= 1

        current_hp += hp_string
    else:
        current_hp = hp_string

    mp_string = str(self.mp) + "/" + str(self.maxmp)
    current_mp = ""

    if len(mp_string) < 7:
        decreased = 7 - len(mp_string)
        while decreased > 0:
            current_mp += " "
            decreased -= 1

        current_mp += mp_string

    else:
        current_mp = mp_string

    print("                      _______________________________              __________ ")
    print(bcolors.BOLD + self.name + "    " +
          current_hp + " |" + bcolors.BAR + hp_bar + bcolors.ENDC + "|    " +
          current_mp + " |" + bcolors.OKBLUE + mp_bar + bcolors.ENDC + "|    ")

2 个答案:

答案 0 :(得分:1)

您必须更改字体类型

  1. 导航到文件->设置->编辑器->字体
  2. 字体:专业版源代码
  3. 应用->确定
  4. 重新运行程序

答案 1 :(得分:-1)

在脚本顶部尝试以下操作:

import sys

reload(sys)
sys.setdefaultencoding('utf8')