我需要从字符串中删除特定的单词.
但我发现python strip方法似乎无法识别一个有序的单词.刚剥离传递给参数的任何字符.
例如:
>>> papa = "papa is a good man"
>>> app = "app is important"
>>> papa.lstrip('papa')
" is a good man"
>>> app.lstrip('papa')
" is important"
Run Code Online (Sandbox Code Playgroud)
我怎么能用python剥离一个指定的单词?
今天我正在查看另一个代码,看到了这个:
class A(B):
# Omitted bulk of irrelevant code in the class
def __init__(self, uid=None):
self.uid = str(uid)
@classmethod
def get(cls, uid):
o = cls(uid)
# Also Omitted lots of code here
Run Code Online (Sandbox Code Playgroud)
这个cls()
功能在这做什么?
如果我让其他类继承这个A
类,调用它C
,在调用这个get方法时,这会o
使用C
class作为调用者cls()
吗?
在iterm2中,默认情况下,只有使用制表符分割的当前颜色将具有正常的黑色背景颜色,同时所有其他制表符分割将被雾状灰色背景颜色覆盖.
我知道这可能是为了提高注意力.问题是,有时我真的需要同时查看两个拆分.而这种雾状的灰色背景颜色增加了阅读的难度.
有没有办法禁用此功能?
我已经阅读了官方文档https://docs.python.org/2/library/functions.html#int,但仍然感到困惑.
我在我的终端上尝试了一些命令,我找到了一些规则,但仍然不太清楚.希望有更多相关知识的人可以进一步解释.
以下是我的例子和发现:
int('0', base=1)
ValueError: int() base must be >= 2 and <=36
int('3', base=2)
ValueError: invalid literal for int() with base 2:
int('3', base=4)
3
int('33', base=4)
15
int('333', base=4)
63
int('353', base=4)
ValueError: invalid literal for int() with base 4:
Run Code Online (Sandbox Code Playgroud)
我在这里找到两个规则:
int()
会返回一个数字,等于(n)*(base^(n-1)) + (n-1)*(base^(n-2)) + ... + 1*(base^0)
除此之外是否还有其他隐藏规则,以及基础设计要解决的问题是什么?
我今天正在研究python范围并做了一些实验.我发现了一个有趣的现象.通过调用exec("global var; var = value")
导入函数内部.我可以将这个值存储在未知的地方.后来我可以通过使用来检索它import module; print(module.var)
.请参阅以下代码:
# temp.py
def str_to_global_var(string, obj):
command_1 = 'global %s; %s=%r' % (string, string, obj)
exec(command_1)
# script.py
from copy import copy
from temp import str_to_global_var
cur_global = copy(globals())
str_to_global_var('x', 6)
new_global = globals()
print(set(new_global.keys()) - set(cur_global.keys()))
d2 = copy(new_global)
d1 = copy(cur_global)
del d2['cur_global']
del d2['new_global']
print('Compare d2==d1: ', d2 == d1)
print("'x' in new_global: ",'x' in new_global)
import temp
print("temp.x:", temp.x)
# Interpreter running result
>>> ipython3 script.py …
Run Code Online (Sandbox Code Playgroud) 我dict.viewkeys()
今天在学习,我发现我的python称它为dict_keys
对象.我可以将它作为一个可迭代的处理,但它不是一个生成器,因为我可以不止一次迭代它.
根据我的有限知识,我只知道一些数据类型,如String,int,float,list,dict,tuple,set.
但昨天我学会了enumerate()
返回一个特殊的数据对,只能使用dict()
一次,因此它是一个特殊的元组生成器,具有(index_of_iteration, item)
价值
这个dict_keys
对象是另一个"我不知道究竟是什么,但我知道如何使用它"在python中的对象类型,还是其他什么?
我正在学习python的随机模块.我知道它会生成伪随机数.其核心思想是使用高频时钟作为种子然后使用函数来产生"看起来像随机数".
据我所知,甚至不可能在现实世界中产生真实的随机数.
但我知道Unix随机生成器已经引入了一些其他因素,如鼠标移动轨迹参数,IO响应时间,为其随机数生成器函数引入不确定性.通过它我们可以获得比普通伪随机数更好的随机数.预测起来要困难得多.
那么,有没有办法在python中我们可以产生这样一个随机数,或者可能导入一个好的第三方库?
在我正在查看的代码中,我看到了一些像这样的类方法:
class A(B):
def method1(self,):
do_something
def method2(self,):
do_something_else
Run Code Online (Sandbox Code Playgroud)
为什么作家在自己后面留下逗号,他/她的目的是什么?
我的 git 工作流程是这样的:
1. make new feature branch from branch release.
2. developing on it, after finish it, merge it into branch testing
3. Do test with code of branch testing
4. If test passed, merge new feature branch into branch release.
Run Code Online (Sandbox Code Playgroud)
但我在这里遇到了一个困惑,我应该在将这个新功能分支合并到发布后删除它吗?为什么?
今天我为自己写了一个"别名导入函数",因为我需要编写一个脚本来对不同的python文件进行变量值检查.
# filename: zen_basic.py
import importlib
def from_module_import_alias(module_name, var_name, alias):
""" equal to from module import a as b """
agent = importlib.import_module(module_name)
globals()[alias] = vars(agent)[var_name]
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我启动一个Python交互式shell,我就无法使用这个函数导入东西.但是通过在函数之外使用它的内容,它可以工作.
>>> from zen_basic import *
>>> module_name = 'autor'
>>> var_name = 'food'
>>> alias = 'fd'
>>> from_module_import_alias(moduele_name, var_name, alias)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'moduele_name' is not defined
>>> from_module_import_alias(module_name, var_name, alias)
>>> fd
Traceback (most recent call last):
File "<stdin>", line 1, …
Run Code Online (Sandbox Code Playgroud)