startswithpython
A. python输出有误,出现AttributeError: 'NoneType' object has no attribute 'startswith'
你的错误提示并没有看到具体是代码中哪一行,但从提示来看,是因为某个对象没有正常获得数据,他们值是一个None,所以需要提前对color进行检测。
B. python中 a.startswith 什么意思
意思就是a是已什么开头的
C. python 的startswith和endswith怎么实现的啊,找到了py文件,但是里面居然
为了回答你这个问题我专门把python源码(github python/cpython)下载来搜了下。
首先可以确定是C语言实现的,所以在IDE只能看到声明。
然后搜索:find . -type f -name '*.c' |xargs grep -s 'startswith'
可以看到
./Objects/bytesobject.c:bytes_startswith(PyBytesObject *self, PyObject *args)
staticPyObject*
bytes_startswith(PyBytesObject*self,PyObject*args)
{
return_Py_bytes_startswith(PyBytes_AS_STRING(self),PyBytes_GET_SIZE(self),args);
}
PyObject*
_Py_bytes_startswith(constchar*str,Py_ssize_tlen,PyObject*args)
{
return_Py_bytes_tailmatch(str,len,"startswith",args,-1);
}
/*Matchestheend(direction>=0)orstart(direction<0)ofthebuffer
*againstsubstr,usingthestartandendarguments.Returns
*-1onerror,0ifnotfoundand1iffound.
*/
staticint
tailmatch(constchar*str,Py_ssize_tlen,PyObject*substr,
Py_ssize_tstart,Py_ssize_tend,intdirection)
{
Py_buffersub_view={NULL,NULL};
constchar*sub;
Py_ssize_tslen;
if(PyBytes_Check(substr)){
sub=PyBytes_AS_STRING(substr);
slen=PyBytes_GET_SIZE(substr);
}
else{
if(PyObject_GetBuffer(substr,&sub_view,PyBUF_SIMPLE)!=0)
return-1;
sub=sub_view.buf;
slen=sub_view.len;
}
ADJUST_INDICES(start,end,len);
if(direction<0){
/*startswith*/
if(start+slen>len)
gotonotfound;
}else{
/*endswith*/
if(end-start<slen||start>len)
gotonotfound;
if(end-slen>start)
start=end-slen;
}
if(end-start<slen)
gotonotfound;
if(memcmp(str+start,sub,slen)!=0)
gotonotfound;
PyBuffer_Release(&sub_view);
return1;
notfound:
PyBuffer_Release(&sub_view);
return0;
}
D. python用简单代码替换startswith函数
n=0
foriinrange(len(s1)):
ifs1[i:i+len(s2)]==s2:
n+=1
E. list 类怎么用 startwith python
list没有startwith函数,只有字符串才有,如果你的list是一个字符列表,你可以先join。
l=["a","b","c","d"]
s=''.join(l)
s.startswith("ab")
如果解决了您的问题请点赞!
如果未解决请继续追问!
F. python pip 安装包一直出现错误AttributeError: 'NoneType' object has no attribute 'startswith'
最近在编写Python脚本过程中遇到一个问题比较奇怪:脚本完全正常没问题,但执行总报错"AttributeError: 'mole' object has no attribute 'xxx'"。这其实是.pyc文件存在问题。
问题定位:
查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件
问题解决方法:
1. 命名py脚本时,不要与python预留字,模块名等相同
2. 删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,所以要删除.pyc文件),重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可
示例:
如下Python代码,执行时报错"AttributeError: 'mole' object has no attribute 'urlopen'",更新Python27\Lib\urllib2.pyc文件后,即可正常运行。
1234
import urllib2url = ""f = urllib2.urlopen(url, timeout=5).read()print len(f)
附录:
pyc文件介绍
pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于java的跨平台,java中JVM运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。
G. python的startwith()和if words(0)!= xxx continue 。if len()== 0 continue的区别
counts=dict()
forlineinfhand:
line=line.strip()
words=line.split()
ifline.startswith('From'):
printwords[1]
ifwords[1]notincounts:
counts[words[1]]=1
else:
counts[words[1]]+=1
这段我运行的是对的。有什么问题吗?请给出触发错误的数据。
H. python3 是不是取消endwith startwith 用什么代替
打开python3交互模式:
wenjie@digi007:~$python3
Python3.5.3(default,Jan192017,14:11:04)
[GCC6.3.020170118]onlinux
Type"help","right","credits"or"license"formoreinformation.
>>>s='whenIwasyoung'
>>>s.startswith('when')
True
>>>s.startswith('When')
False
>>>s.endswith('g')
True
>>>s.endswith('G')
False
I. python startswith 入门问题
str(i).startswith('a')