Python 2.6引入了该str.format()方法,其语法与现有%运算符略有不同.哪种情况更好,哪种情况更好?
以下使用每种方法并具有相同的结果,那么有什么区别?
#!/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)此外,何时在Python中发生字符串格式化?例如,如果我的日志记录级别设置为HIGH,我仍然会执行以下%操作吗?如果是这样,有没有办法避免这种情况?
log.debug("some debug info: %s" % some_info)
Run Code Online (Sandbox Code Playgroud)x = " \{ Hello \} {0} "
print x.format(42)
Run Code Online (Sandbox Code Playgroud)
给我 : Key Error: Hello\\
我想打印输出: {Hello} 42
鉴于:
a = 1
b = 10
c = 100
Run Code Online (Sandbox Code Playgroud)
如何为少于两位数的所有数字显示前导零?
那是,
01
10
100
Run Code Online (Sandbox Code Playgroud) 我想用空格填写一个字符串.我知道以下适用于零:
>>> print "'%06d'"%4
'000004'
Run Code Online (Sandbox Code Playgroud)
但是当我想要这个时我该怎么办?
'hi '
Run Code Online (Sandbox Code Playgroud)
当然我可以测量弦长并做str+" "*leftover,但我想要最短路.
是否可以在字符串值中包含占位符string.xml,可以在运行时分配值?
例:
一些字符串PLACEHOLDER1更多字符串
是否有一种简单的方法来在Go中格式化字符串而不打印字符串?
我可以:
bar := "bar"
fmt.Printf("foo: %s", bar)
Run Code Online (Sandbox Code Playgroud)
但我希望返回格式化的字符串而不是打印,以便我可以进一步操作它.
我也可以这样做:
s := "foo: " + bar
Run Code Online (Sandbox Code Playgroud)
但是当格式字符串很复杂时很难读取,当一个或多个部分不是字符串并且必须先转换时很麻烦,就像
i := 25
s := "foo: " + strconv.Itoa(i)
Run Code Online (Sandbox Code Playgroud)
我是Go的新手 - 我的背景是Ruby,这很简单.有更简单的方法吗?
我需要将前导零添加到整数以生成具有已定义数字位数的字符串($ cnt).将这个简单函数从PHP转换为Python的最佳方法是什么:
function add_nulls($int, $cnt=2) {
$int = intval($int);
for($i=0; $i<($cnt-strlen($int)); $i++)
$nulls .= '0';
return $nulls.$int;
}
Run Code Online (Sandbox Code Playgroud)
有没有可以做到这一点的功能?
我有一个显示的价格字段,有时可以是100或100.99或100.9,我想要的是只有在为该价格输入小数时才显示2位小数的价格,例如,如果它的100只是它应该只显示100不是100.00,如果价格是100.2,它应该显示100.20同样100.22应该是相同的.我用谷歌搜索并遇到了一些例子,但它们与我想要的完全不符:
// just two decimal places
String.Format("{0:0.00}", 123.4567); // "123.46"
String.Format("{0:0.00}", 123.4); // "123.40"
String.Format("{0:0.00}", 123.0); // "123.00"
Run Code Online (Sandbox Code Playgroud) 我有一个我需要转换为字符串的数字.首先我使用了这个:
Key = i.ToString();
Run Code Online (Sandbox Code Playgroud)
但我意识到它是按照一个奇怪的顺序排序,所以我需要用零填充它.我怎么能这样做?
我想要显示:
49 如 49.00
和:
54.9 如 54.90
无论小数的长度或是否有任何小数位,我想显示Decimal2位小数,我想以有效的方式做到这一点.目的是显示货币价值.
例如, 4898489.00
python ×6
string ×5
c# ×2
android ×1
curly-braces ×1
format ×1
formatting ×1
go ×1
integer ×1
logging ×1
pad ×1
performance ×1
regex ×1