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')