python基礎(局部、全域變數、函數、檔案的操作)

來源:互聯網
上載者:User

標籤:line   off   編程   war   global   for   第一個   操作   ret   

python基礎(局部、全域變數、函數、檔案的操作)

局部變數 可以用傳回值
全域變數
如果一個函數有傳回值,在沒有調用函數之前 用這個變數儲存的話,沒有任何的意義
global
如果在局部變數中加入global 用來對一個全域變數的聲明
wendu = 0
def test1():
global wendu
wendu = 33

def test2():
print("%d"%wendu)
#test1()
test2() 結果為0

wendu = 0
def test1():
global wendu
wendu = 33

def test2():
print("%d"%wendu)
test1()
test2() 結果為33

全域變數可以在函數前面也可以在後面 不能在調用之後
局部變數 比 全域變數高
在函數中,如果對一個和全域變數名相同的變數 進行賦值的時候,預設是定義一個變數
只不過這個變數名字和全域白能量名字相同罷了
可以 加上g_

如果列表字典當作全域變數 不用添加global聲明 可以直接當作全域變數來用

預設參數 可以多個 只能放在後面
def test(a,b=100) 可以傳,也可以不傳 不傳用預設,傳了用傳入的
def test(a,b=100)預設參數
? ? return a + b
b = test(10)
print(b)
預設函數多個時候 可以制定給誰傳
eg:def test(a,b=11,c=33):
? ?test(11,12) 12會給b
? ?test(11,c =12) 實參 12給 傳入的時候叫做具名引數 c為具名引數

+名子 args 官方
不定長參數
形參和實參 形參的個數大於實參的個數都存在不定長函數裡面
一個元祖裡面只有一個元素 要在後面加一個,
拆元組
拆包
**kwargs
拆×××

id(記憶體空間的地址)引用
a = 100
b =a 公用一個地址

c語言中 不一樣 a = 100 b = 100 兩個地址

可變類型與不可變類型
不可變 數字 字串 元組
可變 列表 子典

遞迴函式
def getNum(num):
? ? if num >1:
?? ?? ? return num * getNum(num-1)
? ? else:
?? ?? ? return num

匿名函數
lambda 參數:式子
變數 = lambda x,y:x+y
變數()
用於字典的排序
stus = [{},{},{}]
stus.sort(key= lambda x:x["key"] or ["value"])

def test(a,b,func)
? ? result = func(a,b)
? ? print(result)
test(11,12,lambda x,y:x+y)

python3 字串轉化為命令
eval()去掉""相當於語句

字串的操作
1.find()? 存在返回位置? 不存在返回-1
2.index()? 索引返回位置? 不參在報錯
3.rfind()? ?從右往左
4.rindex()
5.count()出現次數
6.replace() 替換 .replace("","",如果字串裡面有重複的,這個位子可以跟第幾個)
??不寫預設重複的都修改
7.split() 切割 split(" ") 切割有消耗
8.capitalize() 字串第一個大寫
9.title()? 每個單字首大寫
10.startswith() 判斷字串開頭
11.endsswith() 判斷結尾 尾碼
12.upper() 都大寫
13.lower() 都小寫
14.rjust() 靠右對齊
15.ljust() 靠左對齊
16.center()裡面可以跟寬度
17.lstrip() 刪除左邊的空格
18.rstrip() 刪除右邊的空格
19.partition(str) 分割成三部分
20.rpartition(str) 右邊開始分割
21.splitline() 換行切 \n 碰見編程短字串
22.isalpha()判斷都是字母
22.isdigit() 判斷都是純數字
23.isalnum() 只包含字母和數字
24.isspace() 是不是純空格
25.join() 字串把一個東西連在一起

檔案的的操作
f = open("","w")
r 唯讀 指標放在檔案的開頭
w 唯寫 存在覆蓋 不存在建立
a 開啟一個檔案用於追加? 如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
rb 二進位開啟一個檔案唯讀 指標在開頭
wb 而至今寫入
ab 二進位追加
a+ 讀寫 存在 放在結尾
rb+
wb+
ab+
f.close()

如果open是開啟一個檔案,那麼可以不用謝開啟的模式,即唯寫?open(‘test.txt‘)
如果使用讀了多次,那麼後面讀取的資料是從上次讀完後的位置開始的
檔案的重新命名 import os
os .rename()
檔案的刪除 import os
os.remove()
檔案的備份
#coding=utf-8

oldFileName = input("請輸入要拷貝的檔案名稱字:")

oldFile = open(oldFileName,‘r‘)

如果開啟檔案if oldFile:提取檔案的尾碼

fileFlagNum = oldFileName.rfind(‘.‘)
if fileFlagNum > 0:
fileFlag = oldFileName[fileFlagNum:]

組織新的檔案名稱字

newFileName = oldFileName[:fileFlagNum] + ‘[複件]‘ + fileFlag

建立新檔案

newFile = open(newFileName, ‘w‘)

把舊檔案中的資料,一行一行的進行複製到新檔案中

for lineContent in oldFile.readlines():
newFile.write(lineContent)

關閉檔案

oldFile.close()
newFile.close()
?
檔案的隨機讀寫

開啟一個已經存在的檔案

f = open("test.txt", "r")
str = f.read(3)
print "讀取的資料是 : ", str

尋找當前位置

position = f.tell()
print "當前檔案位置 : ", position

str = f.read(3)
print "讀取的資料是 : ", str

尋找當前位置

position = f.tell()
print "當前檔案位置 : ", position

f.close()
?
檔案的操作
如果在讀寫檔案的過程中,需要從另外一個位置進行操作的話,可以使用seek()
seek(offset, from)有2個參數
offset:位移量
from:方向
0:表示檔案開頭
1:表示當前位置
2:表示檔案末尾
demo:把位置設定為:從檔案開頭,位移5個位元組

開啟一個已經存在的檔案

f = open("test.txt", "r")
str = f.read(30)
print "讀取的資料是 : ", str

尋找當前位置

position = f.tell()
print "當前檔案位置 : ", position

重新設定位置

f.seek(5,0)

尋找當前位置

position = f.tell()
print "當前檔案位置 : ", position

f.close()
?

demo:把位置設定為:離檔案末尾,3位元組處

開啟一個已經存在的檔案

f = open("test.txt", "r")

尋找當前位置

position = f.tell()
print "當前檔案位置 : ", position

重新設定位置

f.seek(-3,2)

讀取到的資料為:檔案最後3個位元組資料

str = f.read()
print "讀取的資料是 : ", str

f.close()
51cto地址http://blog.51cto.com/n1lixing

本站連結:http://www.ldxzs.top

?

python基礎(局部、全域變數、函數、檔案的操作)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.