本文将为您提供关于|=的详细介绍,我们还将为您解释ior在Python中做什么?的相关知识,同时,我们还将为您提供关于*[,keyword_arg=value]在Python仅关键字函数定义中做什么?
本文将为您提供关于| =的详细介绍,我们还将为您解释ior在Python中做什么?的相关知识,同时,我们还将为您提供关于*[, keyword_arg = value] 在 Python 仅关键字函数定义中做什么?、<>运算符在python中做什么?、<()在Bash中做什么?、if __name__ =__main__ 在 Python 中做什么?的实用信息。
本文目录一览:- | =(ior)在Python中做什么?(python中io指什么)
- *[, keyword_arg = value] 在 Python 仅关键字函数定义中做什么?
- <>运算符在python中做什么?
- <()在Bash中做什么?
- if __name__ =__main__ 在 Python 中做什么?
| =(ior)在Python中做什么?(python中io指什么)
Google不允许我进行搜索,|=
因此我在查找相关文档时遇到了麻烦。有人知道吗
答案1
小编典典|=
在成对的对象之间执行 就地 +操作。尤其是:
- 集合:联合操作
- dicts:更新操作
- 计数器:(多集)联合运算
- 数字:按位或,二进制运算
在大多数情况下,它与|
操作员有关。请参阅下面的示例。
套装
例如,两个分配的集合的s1
并并s2
共享以下等效表达式:
>>> s1 = s1 | s2 # 1>>> s1 |= s2 # 2>>> s1.__ior__(s2) # 3
其中的最终值s1
等于:
- 分配的OR操作
- 就地或运算
- 通过特殊方法++进行原位或运算
例
在这里,我们将OR(|
)和就地OR(|=
)应用于 集合 :
>>> s1 = {"a", "b", "c"}>>> s2 = {"d", "e", "f"}>>> # OR, | >>> s1 | s2{''a'', ''b'', ''c'', ''d'', ''e'', ''f''}>>> s1 # `s1` is unchanged{''a'', ''b'', ''c''}>>> # In-place OR, |=>>> s1 |= s2>>> s1 # `s1` is reassigned{''a'', ''b'', ''c'', ''d'', ''e'', ''f''}
辞典
在Python 3.9+中,在字典之间提出了新的merge(|
)和update(|=
)运算符。注意:这些与上述集合运算符不同。
两个指定的dictd1
和之间的给定操作d2
:
>>> d1 = d1 | d2 # 1>>> d1 |= d2 # 2
其中d1
经由相当于:
- 分配的合并权操作
- 就地合并权限(更新)操作;相当于
d1.update(d2)
例
在此,我们将merge(|
)和update(|=
)应用于 字典 :
>>> d1 = {"a": 0, "b": 1, "c": 2}>>> d2 = {"c": 20, "d": 30}>>> # Merge, | >>> d1 | d2{"a": 0, "b": 1, "c": 20, "d": 30}>>> d1 {"a": 0, "b": 1, "c": 2}>>> # Update, |=>>> d1 |= d2>>> d1 {"a": 0, "b": 1, "c": 20, "d": 30}
专柜
在collections.Counter
涉及称为数学数据结构
多集 (MSET)。它基本上是(对象,多重性)键值对的决定。
给定两个分配柜台之间的操作c1
和c2
:
>>> c1 = c1 | c2 # 1>>> c1 |= c2 # 2
其中c1
经由相当于:
- 指定的联合操作
- 就地联合操作
多集的并集包含每个条目的最大重复数。请注意,这与两个集合之间或两个常规字典之间的行为方式不同。
例
在这里,我们将union(|
)和就地union(|=
)应用于 Counters :
import collections as ct>>> c1 = ct.Counter({2: 2, 3: 3})>>> c2 = ct.Counter({1: 1, 3: 5})>>> # Union, | >>> c1 | c2Counter({2: 2, 3: 5, 1: 1})>>> c1Counter({2: 2, 3: 3})>>> # In-place Union, |=>>> c1 |= c2>>> c1Counter({2: 2, 3: 5, 1: 1})
号码
最后,您可以进行二进制数学运算。
在两个分配的数字n1
和之间进行给定的运算n2
:
>>> n1 = n1 | n2 # 1>>> n1 |= n2 # 2
其中n1
经由相当于:
- 分配的按位或运算
- 就地按位或运算
例
在这里,我们将按位OR(|
)和就位按位OR(|=
)应用于 数字 :
>>> n1 = 0>>> n2 = 1>>> # Bitwise OR, |>>> n1 | n21>>> n10>>> # In-place Bitwise OR, |=>>> n1 |= n2>>> n11
评论
本节简要回顾一些按位数学。在最简单的情况下,按位或运算会比较两个二进制位。1
除非两个位均为,否则它将始终返回0
。
>>> assert 1 == (1 | 1) == (1 | 0) == (0 | 1)>>> assert 0 == (0 | 0)
现在,我们将这个想法扩展到二进制数之外。给定任意两个整数(缺少小数部分),我们应用按位“或”并得到一个积分结果:
>>> a = 10 >>> b = 16 >>> a | b26
怎么样?通常,按位运算遵循一些“规则”:
- 内部比较二进制等效项
- 应用操作
- 以给定类型返回结果
让我们将这些规则应用于上面的常规整数。
(1)比较二进制等效项,在这里视为字符串(0b
表示二进制):
>>> bin(a)''0b1010''>>> bin(b)''0b10000''
(2)对每列应用按位或运算(0
当两者均为时0
,否则1
):
0101010000-----11010
(3)返回给定类型的结果,例如以10为底的十进制数:
>>> int(0b11010)26
内部二进制比较意味着我们可以将后者应用于任何基数的整数,例如十六进制和八进制:
>>> c = 0xa # 10>>> d = 0o20 # 16 >>> c | d26
也可以看看
- 在抽象基类中重载
__ior__()
方法以迭代可迭代对象的示例MutableSet
- R. Hettinger的OrderedSet配方(分别参见第3行和第10行)
- 一对Python的想法线程上为什么要使用
|=
更新一组 - 一个在Python 3潜水的部分B.8 Python的运营商的特殊方法
+就位按位或运算符不能应用于文字;将对象分配给名称。
++特殊方法返回与其对应运算符相同的操作。
*[, keyword_arg = value] 在 Python 仅关键字函数定义中做什么?
如何解决*[, keyword_arg = value] 在 Python 仅关键字函数定义中做什么??
考虑一下:
help(min)
给出:
Help on built-in function min in module builtins:
min(...)
min(iterable,*[,default=obj,key=func]) -> value
min(arg1,arg2,*args,key=func]) -> value
With a single iterable argument,return its smallest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments,return the smallest argument.
我的问题是:
min(iterable,key=func]) -> value
和
min(iterable,*,key=func) -> value
解决方法
这不是 Python 语法,它只是在帮助文本中使用以表明这些参数是可选的。
,Python 文档/帮助源自 EBNF 来描述语法。一对 [
]
在 EBNF 和 Python 文档中表示“可选”;为简洁起见,文档中没有引用 (
)
和名称等常用符号,即使这在 EBNF 中具有不同的含义。*
和 ,
源自 Python 的 call syntax。 *
表示“位置参数结束”。
具体例子
min(iterable,*[,default=obj,key=func]) -> value
这意味着 default
和 key
是可选的仅关键字参数。
<>运算符在python中做什么?
我在这里碰到了这个,总是这样使用:
if string1.find(string2) <> -1:
pass
什么是<>
运营商做的,为什么不使用普通的==
或in
?
抱歉,如果以前没有回答,搜索引擎将不喜欢标点符号。
<()在Bash中做什么?
在superuser.com上的帖子答案中,我们看到了
join <(sort abc) <(sort bcd)
在将文件abc和bcd进行发送之前将它们排序。这导致了一个编程问题,更适合于stackoverflow。
这是如何运作的?<()构造到底是什么?它叫什么?
如果(sort abc)是在abc上运行sort并返回输出的合法调用,为什么我们需要<
?
也就是说,以下两行是等效的
(sort abc) | join - <(sort bcd)join <(sort abc) <(sort bcd)
但
join (sort abc) (sort bcd)
是语法错误。请提示我!
答案1
小编典典这称为过程替换。
<(
list
)
是单个语法结构,在这种情况下,“ <”字符不是单独的符号。它执行 list
并将其输出作为文件(不是标准重定向)提供给命令。
它等效于运行(除了在可能的情况下使用管道而不是临时文件):
sort abc > /tmp/1sort bcd > /tmp/2join /tmp/1 /tmp/2
请注意,两种输出均以要连接的文件名形式提供,而不是以标准重定向的形式提供。
(
list
)
是出于不同目的的不同构造。它只是创建一个执行 list 的子外壳,将其标准描述符提供给父外壳。
这是bash手册中的相关部分。
if __name__ =__main__ 在 Python 中做什么?
你可能在
当您直接运行程序或脚本时,python 会自动将“main”分配给特殊的name变量。这样做基本上是为了表明该文件是此处的“主”脚本,并且正在直接运行而不是导入到另一个脚本中。
要理解这一点,请创建一个新的 python 脚本,假设将其命名为“example.py”并写入:
print("name of script: ", __name__)
运行此命令,您将看到输出的脚本名称:__main__。这只是因为文件是直接运行的。
现在,创建另一个
立即学习“Python免费学习笔记(深入)”;
让我们对示例文件进行一些更改,以便我们更好地理解它。
def s_name(): print("name of script: ", __name__) s_name() def greet(): print("hello! how are you doing?") if __name__=="__main__": greet()
现在,如果您直接运行此命令,一切都会完美执行,但如果您运行导入 example.py 脚本的其他文件,您会注意到greet 函数调用未执行。这是为什么?
这是因为 if 条件。条件的作用是检查文件是否正在直接运行。如果直接运行,main将被分配给特殊变量name,这将使这个条件成立,并且条件内的所有内容都将照常运行。
但另一方面,如果您将其导入另一个文件并从那里间接运行它,那么条件语句将不为真,并且放置在条件中的任何内容都不会被执行。
这就是这个条件语句的意义。 当我们将脚本作为模块导入时,它可以防止python解释器自动运行不必要的代码行。
但是,即使我们将脚本作为模块导入,我们也可以调用这些函数。例如:
import example example.greet()
这样,即使条件不满足,我们也可以完美地调用导入模块中的任何函数。
以上就是if __name__ =&#__main__&# 在 Python 中做什么?的详细内容,更多请关注php中文网其它相关文章!
今天关于| =和ior在Python中做什么?的介绍到此结束,谢谢您的阅读,有关*[, keyword_arg = value] 在 Python 仅关键字函数定义中做什么?、<>运算符在python中做什么?、<()在Bash中做什么?、if __name__ =__main__ 在 Python 中做什么?等更多相关知识的信息可以在本站进行查询。
本文标签: