所以我有这个概念的困难*args
和**kwargs
.
到目前为止,我已经了解到:
*args
=参数列表 - 作为位置参数**kwargs
= dictionary - 其键成为单独的关键字参数,值成为这些参数的值.我不明白这会对哪些编程任务有所帮助.
也许:
我想输入列表和字典作为函数AND的参数同时作为通配符,所以我可以传递任何参数?
有一个简单的例子来说明如何*args
和**kwargs
使用?
我发现的教程也使用了"*"和变量名.
是*args
和**kwargs
刚才占位符或者你使用完全相同*args
,并**kwargs
在代码中?
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)我想int
加入一个string
.这就是我现在正在做的事情:
num = 40
plot.savefig('hanning40.pdf') #problem line
Run Code Online (Sandbox Code Playgroud)
我必须运行几个不同数字的程序,而不是两个40.所以我想做一个循环但插入这样的变量不起作用:
plot.savefig('hanning', num, '.pdf')
Run Code Online (Sandbox Code Playgroud)
如何将变量插入Python字符串?
在下面的例子中,我希望所有元素都是元组,为什么元组只包含一个字符串时转换为字符串?
>>> a = [('a'), ('b'), ('c', 'd')]
>>> a
['a', 'b', ('c', 'd')]
>>>
>>> for elem in a:
... print type(elem)
...
<type 'str'>
<type 'str'>
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud) 在python文档2.4.3中。格式化的字符串文字,似乎可以在f字符串中写一个星号后跟一个表达式{}
,但是我找不到如何使用它。
那是什么以及我如何使用它?是否记录在某处?
确切地说,这是关于"*" or_expr
以下BNF的一部分。
f_string ::= (literal_char | "{{" | "}}" | replacement_field)*
replacement_field ::= "{" f_expression ["!" conversion] [":" format_spec] "}"
f_expression ::= (conditional_expression | "*" or_expr)
("," conditional_expression | "," "*" or_expr)* [","]
| yield_expression
Run Code Online (Sandbox Code Playgroud)
我在REPL中尝试过,但是会导致错误。
f_string ::= (literal_char | "{{" | "}}" | replacement_field)*
replacement_field ::= "{" f_expression ["!" conversion] [":" format_spec] "}"
f_expression ::= (conditional_expression | "*" or_expr)
("," conditional_expression | "," "*" or_expr)* [","]
| yield_expression
Run Code Online (Sandbox Code Playgroud) python ×5
string ×2
args ×1
f-string ×1
kwargs ×1
logging ×1
performance ×1
python-3.x ×1
variables ×1