相关疑难解决方法(0)

Python字符串格式:%vs. .format

Python 2.6引入了该str.format()方法,其语法与现有%运算符略有不同.哪种情况更好,哪种情况更好?

  1. 以下使用每种方法并具有相同的结果,那么有什么区别?

    #!/usr/bin/python
    sub1 = "python string!"
    sub2 = "an arg"
    
    a = "i am a %s" % sub1
    b = "i am a {0}".format(sub1)
    
    c = "with %(kwarg)s!" % {'kwarg':sub2}
    d = "with {kwarg}!".format(kwarg=sub2)
    
    print a    # "i am a python string!"
    print b    # "i am a python string!"
    print c    # "with an arg!"
    print d    # "with an arg!"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 此外,何时在Python中发生字符串格式化?例如,如果我的日志记录级别设置为HIGH,我仍然会执行以下%操作吗?如果是这样,有没有办法避免这种情况?

    log.debug("some debug info: %s" % some_info)
    
    Run Code Online (Sandbox Code Playgroud)

python performance logging string-formatting

1323
推荐指数
15
解决办法
96万
查看次数

在Python中将RGB颜色元组转换为六位数代码

我需要将(0,128,64)转换为这样的#008040.我不知道该怎么称呼后者,使搜索变得困难.

python rgb colors

65
推荐指数
9
解决办法
7万
查看次数

在Python中将Hex转换为RGB值

在这里解决Jeremy的反应:将十六进制颜色转换为RGB,反之亦然我能够获得一个python程序来转换预设颜色十六进制代码(例如#B4FBB8),但是从最终用户的角度来看,我们不能要求人们编辑代码并从那里运行.如何提示用户输入十六进制值然后从那里吐出RGB值?

这是我到目前为止的代码:

def hex_to_rgb(value):
    value = value.lstrip('#')
    lv = len(value)
    return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))


def rgb_to_hex(rgb):
    return '#%02x%02x%02x' % rgb

hex_to_rgb("#ffffff")              # ==> (255, 255, 255)
hex_to_rgb("#ffffffffffff")        # ==> (65535, 65535, 65535)
rgb_to_hex((255, 255, 255))        # ==> '#ffffff'
rgb_to_hex((65535, 65535, 65535))  # ==> '#ffffffffffff'

print('Please enter your colour hex')

hex == input("")

print('Calculating...')
print(hex_to_rgb(hex()))
Run Code Online (Sandbox Code Playgroud)

使用该线print(hex_to_rgb('#B4FBB8'))我能够让它吐出正确的RGB值,即(180,251,184)

它可能非常简单 - 我对Python仍然很粗糙.

python rgb colors

45
推荐指数
9
解决办法
4万
查看次数

使用十六进制元素打印列表

我有这个清单:

a_list = [0x00, 0x00, 0x00, 0x00]
Run Code Online (Sandbox Code Playgroud)

当我打印它时,我得到:

print a_list
[0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)

但我想:[0x0, 0x0, 0x0, 0x0]或者[0x00, 0x00, 0x00, 0x00],现在没关系.

我试图创建一个函数,如:

def hex_print(the_list):
     string = '['
     for element in the_list:
         if(the_list.index(element) < len(the_list)):
             print(str(the_list.index(element)))
             string = string + hex(element) + ', '
         else:
             print(str(the_list.index(element)))
             string = string + hex(element) + ']'
     print string
Run Code Online (Sandbox Code Playgroud)

但每次打印的消息是:

[0x0, 0x0, 0x0, 0x0,
Run Code Online (Sandbox Code Playgroud)

我认为the_list.index(element)总是返回the_list中第一次出现的元素,而不是元素的实际位置.有没有办法让我得到元素的实际位置?

python

3
推荐指数
5
解决办法
1万
查看次数

标签 统计

python ×4

colors ×2

rgb ×2

logging ×1

performance ×1

string-formatting ×1