① python 列表 輸出
按照你的要求編寫的程序如下
a=[1,'科學通報',1,'催化學報',2,'化學研究與應用',2,'化工新型材料']
foriinrange(0,len(a),2):
print(str(a[i])+''+a[i+1])
源代碼(注意源代碼的縮進)
② 【技術貼】python數據類型之列表
列表是由一系列按特定順序排列的元素組成的。在Python中,用[]來表示列表,並用逗號來分隔其中的元素。
我們可以創建包含字母,數字或者任何東西的列表。其中列表中的元素之間可以沒有任何的關系。由於列表通常包含多個元素,再給創建的列表命名時,一般使用復數的名稱,如names.
names = ["kitty","anne","jerry"]
print(names)
輸出的結果為方括弧[] 引號 '' 元素
['kitty', 'anne', 'jerry']
注意:列表的偏移量是從0開始的,而不是我們習慣的 1 開始
teacher=['七七','卡西','延君']
teacher[0]='七七'
teacher[1]='卡西'
teacher[2]='延君談襪鉛'
口訣:「左右空,取到頭;左要取,右不取」
teacher=['七七','卡西','延君']
teacher[:2]=['七七','卡西']
格式:列表.append('元素名')
teacher=['七七','卡西','延君']
teacher.append('琦玉')
# 結果為 teacher=['七七','卡西','延君','琦玉']
list.extend([元素1,元素2]):在list列表末端增加多個元素;
list.insert(元素序號,元素):在list列表任意位置增加一個元素
teacher=['七七','卡西','延君','琦玉']
del teacher[3]
# 結果為 teacher=['七七','卡西','延君']
>>> str=[0,1,2,3,4,5,6]
>>> del str[2:4] #刪除從第2個元素開始,到第4個為止的元素(但是不包括尾部元素)
>>> str
[0, 1, 4, 5, 6]
>>> str=[0,1,2,3,4,5,6]
>>> del str
>>> str #刪除後,找不到對象
Traceback (most recent call last):File "<pyshell#27>", line 1, in <mole>strNameError: name 'str' is not defined
注意:del是刪除引用(變數)而不是刪除對象(數好虛據),對象由自動垃圾回收機制(GC)刪除。
1,a = list.count(元素):計算它的參數在列表中出現的次數,並將次數返回;
2,a = list.index(元素):返回它的參數在列表中的位置,返回元素序號;#若有多個元素相同,此為只返回首端起第一個。
3,a = list.index(元素, 序號1,序號2):在序號1和序號2范圍內,返回列表中元素位置。 #若有多個元素相同,此為只返回首端起第一個。
4,list.reverse() == list[::-1]:將整個列表內元素反過含好來排列:[1, 2, 3, 4].reverse() == [4, 3, 2, 1];
5,list.sort():將所有元素,從小到大排列;
6.sorted方法
sorted返回一個有序的副本,並且類型總是列表,如下:
③ Python列表
#Python3.6
deflist_action():
#用單個大寫字母表示省:A,B,C,...
#用省的大寫字母開頭的兩個大寫字母表示該省的市:AA,AB,AC,BA,CA,...
sheng=["A","B","C"]
shi=["AA","AB","AC","AD",
"BA","BB","BC","BD",
"CA","CB","CC","CD"]
#查詢
deflocate_SS(sn,si):
status=[False,False]
try:
sheng.index(sn)
exceptValueError:
print("{}省市不在列表中。".format(sn))
returnstatus
else:
status[0]=True
try:
shi.index(si)
exceptValueError:
print("{}省在列表中,但{}市不在列表中。".format(sn,si))
returnstatus
else:
status[1]=True
print("{}省和{}市已經在列表中。".format(sn,si))
returnstatus
definsert_SS(sn,si):
st=locate_SS(sn,si)
ifst[0]isFalseandst[1]isFalse:
sheng.append(sn)
shi.append(si)
print("成功插入{}省,{}市。".format(sn,si))
elifst[0]andst[1]isFalse:
shi.append(si)
print("成功插入{}市。".format(si))
defdelete_SS(sn,si):
st=locate_SS(sn,si)
ifst[0]andst[1]:
shi.remove(si)
print("成功刪除{}市。".format(si))
foriteminshi:
ifitem.startswith(sn):
return
sheng.remove(sn)
print("城市列表中已無{0}省的城市,刪除{0}省。".format(sn))
else:
print("刪除失敗,輸入城市錯誤。")
while(True):
print("輸入操作如下:")
print("輸入:省份城市名查詢,查詢省份城市")
print("輸入:省份城市名添加,添加省份城市")
print("輸入:省份城市名刪除,刪除省份城市")
print("輸入:退出,退出。")
commond=input()
commond_list=commond.split()
iflen(commond_list)==1andcommond_list[0]=="退出":
exit()
eliflen(commond_list)==3:
sheng_,shi_,cmd=commond_list
ifcmd=="查詢":
locate_SS(sheng_,shi_)
elifcmd=="添加":
insert_SS(sheng_,shi_)
elifcmd=="刪除":
delete_SS(sheng_,shi_)
else:
print("輸入操作有誤,請重新輸入。")
else:
print("輸入操作有誤,請重新輸入。")
print()
if__name__=="__main__":
list_action()
④ python將列表橫著輸出來
在print語句的末位頃激加一個逗號,可以避免列印出拍乎鬧換行符
hand=['a','b','c','d','e','f','g']
for襲罩iinhand:
printi,
⑤ python 如何將一系列數字十個一行輸出
定義一個變數,用於記錄次數,然後這個次數沒輸出一個數自己加1,然後處理這個數,取整數,並且再次歸零。
使用循環輸出列表,利用 計數器控制輸出數量,當輸出到第十個,計數器歸零,重新開始計數
print輸出增加end參數可以控制輸出後以什麼結尾
這里使用range方法快速生成10-90的數字添加進list列表
results = list(range(10, 90))
n = 10 # 每10個數換一行
for i in range(len(results)):
print(results[i], end=' ')
if (i+1) % 10 == 0:
print(" ") # 為轉義符 換行的意思
#out:
序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。
Python有6個序列的內置類型,但最常見的是列表和元組。
序列都可以進行的操作包括索引,切片,加,乘,檢查成員。
此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。
列表是最常用的Python數據類型,它可以作為一個方括弧內的逗號分隔值出現。
列表的數據項不需要具有相同的類型
Python列表函數&方法
1 cmp(list1, list2)比較兩個列表的元素
2 len(list)列表元素個數
3 max(list)返回列表元素最大值
4 min(list) 返回列表元素最小值
5 list(seq)將元組轉換為列表
⑥ Python3 輸入輸出和File(文件) 方法
Python兩種輸出值的方式: 表達式語句和 print() 函數。第三種方式是使用文件對象的 write() 方法,標准輸出文件可以用 sys.stdout 引用。
如果你希望輸出的形式更加多樣,可以使用 str.format() 函數來格式化輸出值。如果你希望將輸出的值轉成字元串,可以使用 repr() 或 str() 函數來實現。
str(): 函數返回一個用戶易讀的表達形式。
repr(): 產生一個解釋器易讀的表達形式。
str.format() 的使用
讀取鍵盤輸入
Python 提供了 input() 內置函數,從標准輸入讀入一行文本,默認的標准輸入是鍵盤。
open() 用於打開一個文件,並返迴文件對象,基本語法格式如下:
open(filename, mode='r')
完整的語法格式為:
open(filename, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
參數說明:
filename: 必需,文件路徑+文件名稱(相對或者絕對路徑)
mode: 可選,文件打開模式:只讀,寫入,追加等,默認模式為只讀(r)
buffering: 設置緩沖
encoding: 一般使用utf8
errors: 報錯級別
newline: 區分換行符
closefd: 傳入的file參數類型
opener: 設置自定義開啟器,開啟器的返回值必須是一個打開的文件描述符。
不同模式mode打開文件的說明:
t 文本模式 (默認的模式)
b 二進制模式,一般用於非文本文件如圖片等
x 寫模式,新建一個文件,如果該文件已存在則會報錯
+ 打開一個文件進行更新(可讀可寫)
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。是默認模式。
rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。
r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。
rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w 打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb 以二進制格式打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
w+ 打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb+ 以二進制格式打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
a 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
ab 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
a+ 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
ab+ 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。
f.write(string) 將 string 寫入到文件中, 然後返回寫入的字元數
f.writelines(sequence) 向文件寫入一個序列字元串列表,如果需要換行則要自己加入每行的換行符。
f.read(size) 讀取一定數目的數據, 然後作為字元串或位元組對象返回。size 是一個可選參數。當 size 參數忽略或者為負, 那麼該文件的所有內容都將被讀取並且返回。
f.readline() 從文件中讀取單獨的一行。換行符為 '\n'。讀取整行,包括 "\n" 字元。f.readline() 如果返回一個空字元串, 說明已經讀取到最後一行。
f.readlines([sizeint])] 讀取所有行並返回列表類型,若給定sizeint>0,返回總和大約為sizeint位元組的行, 並且將這些位元組按行分割。實際讀取值可能比 sizeint 較大, 因為需要填充緩沖區。
f.tell() 返迴文件對象當前所處的位置, 它是從文件開頭開始算起的位元組數。
f.seek() 移動文件讀取指針到指定位置,如果要改變文件當前的位置, 可以使用f.seek(offset, from_what) 函數。from_what 的值(默認為0), 如果是 0 表示開頭, 如果是 1 表示當前位置, 2 表示文件的結尾,例如:
seek(x,0) : 從起始位置即文件首行首字元開始移動 x 個字元
seek(x,1) : 表示從當前位置往後移動x個字元
seek(-x,2):表示從文件的結尾往前移動x個字元
file.flush() 刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件, 而不是被動的等待輸出緩沖區寫入
file.fileno() 返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上
file.isatty() 如果文件連接到一個終端設備返回 True,否則返回 False
file.truncate([size]) 從文件的首行首字元開始截斷,截斷文件為 size 個字元,無 size 表示從當前位置截斷;截斷之後後面的所有字元被刪除,其中 windows 系統下的換行代表2個字元大小。
f.close() 關閉文件並釋放系統的資源。關閉後文件不能再進行讀寫操作,否則會拋出異常
當處理一個文件對象時, 使用 with 關鍵字是非常好的方式。在結束後, 它會幫你正確的關閉文件。 而且寫起來也比 try - finally 語句塊要簡短:
python的pickle模塊實現了基本的數據序列和反序列化。通過pickle模塊的序列化操作能夠將程序中運行的對象信息保存到文件中去,永久存儲。通過pickle模塊的反序列化操作能夠從文件中創建上一次程序保存的對象。
基本介面:
pickle.mp(obj, file, [,protocol])
有了 pickle 對象, 就能對 file 以讀取的形式打開:
x = pickle.load(file)
從 file 中讀取一個字元串,並將它重構為原來的python對象。
示例:使用pickle模塊將數據對象保存到文件
示例:使用pickle模塊從文件中重構python對象