⑴ python3中,定義一個函數,遍歷字元串,使用print後調用函數會有None,換成return結果又不對
第一個圖中,在執行 print(bianli__str('sjsjsj'))這句時,首先執行print括弧中的內容,即進入bianli__str函數,執行了函數中的print語句,列印的內容是字元串的每一個字元,然後退出函數,執行print這個操作,print的內容是你定義的函數,這個函數本身是沒有值的,所以是None
解決的方法就是調用函數的時候不用再print了,如下圖:
第二個圖中結果不對是因為return就會退出函數,所以打完第一個字元後就退出了
⑵ python中,怎麼控制for 循環遍歷 字元串的步長
最簡單的方法應該就是字元串的截取substring;
還可以tochararray()將其放入數組中,然後利用數組按要求賦給另一個數組;
⑶ python 如何將一段字元串用二叉樹的後序遍歷列印出來
# -*- coding:utf-8 -*-def fromFMtoL( mid ): global las #全局後序遍歷 global fir #先序遍歷 root = fir[0] #取出當前樹根 fir = fir[1:] #取出樹根後 先序遍歷把根拿出來 下面一個元素做樹根 root_po = mid.find( root ) #在中序遍歷當中樹根的位置 left = mid[0:root_po] #左子樹 right = mid[root_po+1:len(mid)] #右子樹 ''' 後序遍歷: 左 右 根 先左子樹 再右子樹 最後跟 ''' #有左子樹的時候 if len(left) > 0: fromFMtoL( left ) #有右子樹的時候 if len(right) > 0: fromFMtoL( right ) #樹根寫進結果 las += rootif __name__ == "__main__" : # fir = input("請輸入先序遍歷:") #前序遍歷的結果 # mid = input("請輸入中序遍歷:") #中序遍歷的結果 fir = "DBACEGF" mid = "ABCDEFG" # fir = "ABC" # mid = "BAC" las = "" fromFMtoL( mid ) print(las)
⑷ python讀取一個僅包含數字和字母的文件,遍歷文件中的字元串,見到a
文件不大的話,直接使用read()讀取文件,利用字元串函數count()統計字元出現的次數:
⑸ Python的中文字元串遍歷問題
首先一個,你這個'a'是什麼編碼?可能不是你所想的gbk
>>>
a='測試'
>>>
a
這樣試試看,如果出來是6個字(word),說明是utf-8,如果是4個字,說明是gbk。
另外,不管是utf-8還是gbk,都不能這樣遍歷,因為這里它會
一個字
一個字拿出來。
虛擬機
把a當成一個
長度
為len(a)的
字元串
了。
接下來是遍歷問題。
linux的shell大都默認是utf-8,所以一個
中文
字元是
三個字
,所以要三個三個地讀,你可以試下:
>>>
a[:3]
出來就是個測字
windows的command的默認是cp936,也就是gbk,一個中文字元是
兩個字
,所以兩個字兩個字地讀。
還有另一種遍歷的方法,把字元串轉換成unicode,這樣中文
英文
都是一個字,就可以用你的for
i
in
a的方法遍歷了。這個的好處是中文英文字元都是一個字,而utf-8和gbk里,
英文字母
只佔一個字。
⑹ python遍歷字元串時是逐字遍歷,遍歷txt文本時是逐行讀取,這是為什麼
for循環遍歷,實際上是返回一個迭代器,並不斷調用其next()方法的過程。next()返回什麼,取決於迭代器的具體實現,對於str類型來說,就返回下一個字元串;對於file類型來說,就返回下一行。
⑺ Python用for和什麼保留字可以組成循環遍歷字元串中的每個字元
用for和in可以組成循環遍歷字元串中的每個字元,如:
for c in "this一個char串":
##對每個字元c進行操作的語句
⑻ python 用os.walk()遍歷目錄時,中文文件名顯示為亂碼
#coding=gb18030
import os,sys
def processunicode(value): #定義一個處理unicode類型字元串的函數
v1=''
for a in value:
if type(a)=='unicode':
v1=v1+str(a.encoe('gb18030'))
else:
v1=v1+str(a)
return v1
print processunicode(export) #把要列印的參數傳給該函數,並列印出來
⑼ python編程,通過鍵盤輸入一個字元串,遍歷該字元串中的每一個字元
string = input("請輸入:")
for i in string:
print(i)
⑽ 在python中如何遍歷字元串進行首位交換
直接使用字元串切片就可以實現:
s = "Thereisastringword"
# 最後一位 + 去頭去尾的部分 + 首字元
s1 = s[-1] + "".join(s[1:-1]) + s[0]
print(s1)
用循環也需要等循環結束了再拼接一次字元串
s = "Thereisastringword"
s1 = ""
for i in range(len(s)):
if i == 0:
lastword = s[i]
elif i == len(s) -1 :
fristword = s[i]
else:
s1 += s[i]
print(fristword + s1 + lastword)