Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。


16
如何在python中拆分但忽略带引号的字符串中的分隔符?
我需要在分号上分割这样的字符串。但是我不想分割字符串(“或”)内的分号。我不是在解析文件;只是一个没有换行符的简单字符串。 part 1;"this is ; part 2;";'this is ; part 3';part 4;this "is ; part" 5 结果应为: 第1部分 “这是;第2部分;” '这是 ; 第三部分 第4部分 这是“一部分” 5 我想这可以用正则表达式来完成,如果不能的话;我愿意接受另一种方法。
67 python  regex 

5
如何使用Decorator绕过python函数定义?
我想知道是否有可能基于全局设置(例如OS)控制Python函数定义。例: @linux def my_callback(*args, **kwargs): print("Doing something @ Linux") return @windows def my_callback(*args, **kwargs): print("Doing something @ Windows") return 然后,如果有人使用Linux,则将使用第一个定义,my_callback而第二个定义将被忽略。 它与确定操作系统无关,而与功能定义/修饰符有关。

4
Python“ for”循环的更好方法
我们都知道,在Python中执行语句一定次数的常见方法是使用for循环。 一般的做法是 # I am assuming iterated list is redundant. # Just the number of execution matters. for _ in range(count): pass 我相信没有人会争辩说上面的代码是通用的实现,但是还有另一种选择。通过增加引用来使用Python列表创建的速度。 # Uncommon way. for _ in [0] * count: pass 还有旧的while方法。 i = 0 while i < count: i += 1 我测试了这些方法的执行时间。这是代码。 import timeit repeat = 10 …


1
为什么a.insert(0,0)比a [0:0] = [0]慢得多?
使用列表的insert功能比使用切片分配实现相同的效果要慢得多: > python -m timeit -n 100000 -s "a=[]" "a.insert(0,0)" 100000 loops, best of 5: 19.2 usec per loop > python -m timeit -n 100000 -s "a=[]" "a[0:0]=[0]" 100000 loops, best of 5: 6.78 usec per loop (请注意,这a=[]只是设置,因此a开始为空,然后增长到100,000个元素。) 起初我以为可能是属性查找或函数调用开销,但是在末尾插入表明这可以忽略不计: > python -m timeit -n 100000 -s "a=[]" "a.insert(-1,0)" 100000 loops, …

4
为什么在迭代时添加到集合中和从集合中删除时会得到这么多迭代?
为了理解Python的for循环,我认为这会给出{1}一次迭代的结果,或者只是陷入无限循环,这取决于它是否像C语言或其他语言那样进行迭代。但是实际上它都没有。 >>> s = {0} >>> for i in s: ... s.add(i + 1) ... s.remove(i) ... >>> print(s) {16} 为什么要进行16次迭代?结果{16}从何而来? 这是使用Python 3.8.2。在pypy上可以达到预期的效果{1}。

3
TypeError:attrib()获得了意外的关键字参数“转换”
在使用CI对CI服务器上的python项目进行自动化测试期间,发生了此错误pytest。我正在使用pytest==4.0.2。这个错误才刚刚开始发生,以前的管道似乎工作正常。 完整错误: File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory lambda p: Path(os.path.abspath(six.text_type(p))) TypeError: attrib() got an unexpected keyword argument 'convert'
55 python  pytest 

3
函数编程中的“部分功能”到底是什么意思?
根据我的理解,部分函数是通过向函数传递比预期少的参数而获得的函数。例如,如果这在Python中直接有效: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 在上面的代码段中,new_function是部分功能。但是,根据Haskell Wiki,部分函数的定义为 局部函数是未针对指定类型的所有可能参数定义的函数。 因此,我的问题是:“部分函数”到底是什么意思?

2
python中整数除法和浮点数到整数转换之间的区别是什么原因?
我最近注意到,int()将浮点数舍入为0,而整数除法将浮点数舍入为底数。 例如: -7 // 2 = -4 int(-7/2) = -3 我已经阅读了说明以下内容的文档: 类int(x,base = 10) 返回由数字或字符串x构造的整数对象,如果没有给出任何参数,则返回0。如果x是数字,则返回x。int()。对于浮点数,它会截断为零。 和: 楼层划分 四舍五入到最接近的整数的数学除法。楼层划分运算符为//。例如,与float true除法返回的2.75相比,表达式11 // 4的计算结果为2。请注意(-11)// 4是-3,因为它是向下向下取整的-2.75。参见PEP 238。 但是对我来说,两个类似的操作(将浮点数除以整数)应该返回不同的结果似乎不合逻辑。 这些功能之间的差异是否有动机? 谢谢。

7
压缩的Python生成器,第二个生成器更短:如何检索静默消耗的元素
我想解析2个(可能)长度不同的生成器zip: for el1, el2 in zip(gen1, gen2): print(el1, el2) 但是,如果gen2元素较少,gen1则“消耗” 一个额外的元素。 例如, def my_gen(n:int): for i in range(n): yield i gen1 = my_gen(10) gen2 = my_gen(8) list(zip(gen1, gen2)) # Last tuple is (7, 7) print(next(gen1)) # printed value is "9" => 8 is missing gen1 = my_gen(8) gen2 = my_gen(10) …

7
如何写2 ** n-1作为递归函数?
我需要一个接受n并返回2 n -1的函数。听起来很简单,但是该函数必须是递归的。到目前为止,我只有2 n: def required_steps(n): if n == 0: return 1 return 2 * req_steps(n-1) 练习指出:“您可以假设参数n始终为正整数且大于0”
49 python  recursion 

4
警告:tensorflow:sample_weight模式从…强制为['…']
使用.fit_generator()或.fit()将字典传递class_weight=为参数来训练图像分类器。 我从未在TF1.x中遇到错误,但在2.1中,开始训练时得到以下输出: WARNING:tensorflow:sample_weight modes were coerced from ... to ['...'] 强制从...到['...']到底意味着什么? tensorflow的回购中此警告的来源在此处,注释为: 尝试将sample_weight_modes强制转换为目标结构。这隐含地依赖于模型展平其内部表示的输出这一事实。

12
使用“ /usr/lib/libcrypto.dylib”的MacOS 10.15 Beta(19A582a)上的Python崩溃
我使用新的macOS Catalina运行了Django项目,并且运行良好。 我安装了oh_my_zsh,然后尝试运行它因以下错误而崩溃的同一项目。我卸载了oh_my_zsh并再次尝试,但没有成功。 Path: /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python Identifier: Python Version: 3.7.4 (3.7.4) Code Type: X86-64 (Native) Parent Process: Python [7526] Responsible: Terminal [7510] User ID: 501 Date/Time: 2019-10-07 20:59:20.675 +0530 OS Version: Mac OS X 10.15 (19A582a) Report Version: 12 Anonymous UUID: CB7F20F6-96C0-4F63-9EC5-AFF3E0989687 Time Awake Since Boot: 3000 seconds System Integrity Protection: …

5
Python达到10的下一个最高幂
如何设法将math.ceil数字分配给下一个最高幂10? # 0.04 -> 0.1 # 0.7 -> 1 # 1.1 -> 10 # 90 -> 100 # ... 我当前的解决方案是检查输入数字范围的字典,但是它是硬编码的,因此我希望使用单线解决方案。也许我在这里错过了一个简单的数学技巧或相应的numpy函数?
44 python  ceil 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.