A. python 3 數組 中遍歷為什麼得不到 正確的 數據
方法/步驟
1.先確定工具與環境都配置好了,打開pycharm,新建一個test.py,新建一個列表list1=['C','C++','JAVA','C#','PYTHON','JavaScript'],如圖所示:
B. python編程,通過鍵盤輸入一個字元串,遍歷該字元串中的每一個字元
string = input("請輸入:")
for i in string:
print(i)
C. python中列表的遍歷
沒有優雅的方法解決,只有不要使用print語句,如樓上所說,或者使用python3.X中的print函數(通過
from __future__ import print_function使能print函數形式)
其實,在python2.X手冊中對print語句描述說:(python2.7.2官方幫助文檔)
一個空格會被自動列印在每個對象前,
除非:(1)還沒有輸出寫到標准輸出中
(2)當最後一個寫到標准輸出的是一個除了空格『 』的空白字元
(3)當最後寫到標准輸出的不是一個print語句。
所以在apple、banana等每個字元前都有一個空格。(apple的a前也有空格呢!)
一個好的解決辦法是使用python3.X中的print函數。
通過在文件前面加上:
from __future__ import print_function
就可以使用print的函數形式了。
print函數的語法:
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])
默認下,若沒有指定sep,則使用空格。沒指定end,則使用換行符。沒指定輸出文件則輸出到標准輸出。
例如:print('hello','world',sep='-',end='#')輸出:
hello-world#
所以,你的程序可改為:
from __future__ import print_function
list = ["apple", "banana", "grape", "orange"]
for x in range(len(list)):
print('list[%d]:'%x,end='')
for y in range(len(list[x])):
print(list[x][y],sep='',end='')
print('')
至於: 'list[%d]:'%x 這里的百分號,是一個對字元串的操作符。百分號使得百分號前面的字元串中
的%d被百分號後的x的值替換掉。
D. Python用for和什麼保留字可以組成循環遍歷字元串中的每個字元
用for和in可以組成循環遍歷字元串中的每個字元,如:
for c in "this一個char串":
##對每個字元c進行操作的語句
E. 在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)
F. python字元串處理問題
strip函數只能去除首尾字元,不能去掉中間字元
strip函數沒有副作用,也就是返回值才是去掉後的字元串
更簡潔的寫法left = ''.join([c for c in password if c in symbols])
G. Python讀取一個字元串,並循環輸出幾遍
總共六個字元
python可以通過str*2重復輸出字元串printstr*2#輸出字元串兩次,循環代碼塊就是將取到的每個字元進行列印輸出,總共六個字元,就循環執行了6次。接下來我們使用For循環遍歷一個列表。
H. 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里,英文字母只佔一個字。
I. python3中,定義一個函數,遍歷字元串,使用print後調用函數會有None,換成return結果又不對
第一個圖中,在執行 print(bianli__str('sjsjsj'))這句時,首先執行print括弧中的內容,即進入bianli__str函數,執行了函數中的print語句,列印的內容是字元串的每一個字元,然後退出函數,執行print這個操作,print的內容是你定義的函數,這個函數本身是沒有值的,所以是None
解決的方法就是調用函數的時候不用再print了,如下圖:
第二個圖中結果不對是因為return就會退出函數,所以打完第一個字元後就退出了
J. python遍歷字元串時是逐字遍歷,遍歷txt文本時是逐行讀取,這是為什麼
for循環遍歷,實際上是返回一個迭代器,並不斷調用其next()方法的過程。next()返回什麼,取決於迭代器的具體實現,對於str類型來說,就返回下一個字元串;對於file類型來說,就返回下一行。