python day08

一 文件處理補充

控制文件中光標移動

1 f.read(n):

l.文件打開方式為文本模式的時,代表讀取N個字符

ll.文件打開方式為b模式時,讀取N個字節

強調:只有在read(n)模式下 N代表字符個數,除此之外的是以字節為單位

2 f.seek():

光標移動是以字節為單位的整數移動.

三種模式:(分別為0 1 2 代表)

0(默認模式):參照文件開頭 往后數 該模式既可以在t下用 也可以在b下用

1模式:參照光標當前位置往下數

2模式:參照文件末尾往下數

其中1和2必須在b模式下進行,但無論哪種模式,都是以bytes為單位移動的

? ? ? ?f.seek(3,0)? ?3--字節,0--方式

4 f.truncate(3):截斷文件,在第三個字符后添加內容/刪除之后的內容

其文件的打開方式必須可寫,但是不能用w或w+等方式打開(直接清空文件),所以truncate要在r+或a或a+等模式下測試效果

5 f.tell:光標移動到文件末尾

例:

import time
with open('access.log',mode='rb')as f:f.seek(0,2)while True:line=f.readline()if len(line)==0:time.sleep(0.1)else:print (line,decode('utf-8'),end=' ')

二 函數

l 什么是函數

在程序中具備某一功能的工具==>函數

實現準備好工具==>函數的定義

遇到應用場景 拿來就用==>函數的作用

?函數分兩類:內置函數 ?自定義函數

ll 為何要用函數

1 代碼冗余

2 程序的組織結構不清晰 可讀性差

3 擴展性差

lll 如何用函數: 函數的使用必須遵循一個原則

1 先定義

先定義
def 函數名(參數1 參數2 參數3)
"""
文檔注釋 """代碼1代碼2代碼3 return(返回)值

2 后引用?

? ? 函數名()

#1. 定義階段: 只檢測語法,不執行代碼def func():print('from func 1')#2. 調用階段: 開始執行函數體代碼func()# 定義
def func():print('from func')bar()def bar():print('from bar')# 調用
func()函數的定義與調用

定義函數的三種形式

l 無參函數

ll 有參函數

lll 空函數

 1. 無參函數
def func():print('from func')func()# 2. 有參函數
def max2(x,y):# x=1# y=2if x > y:print(x)else:print(y)max2(1,2)
max2(3,4)# 3. 空函數
def register():pass

四 調函數的三種形式

l 語句形式

ll 表達式形式

lll 函數的調用可以當作另外一個函數的參數傳入

# 1 語句形式
def func():print('from func')func()
# 2 表達式形式
def max2(x,y):if x > y:return xelse:return yres=max2(110,220) * 12
print(res)res=len('hello')
print(res)# 3 函數的調用可以當作另外一個函數的參數傳入
def max2(x,y):if x > y:return xelse:return yres=max2(max2(7,9),2)
print(res)調用函數的三種形式

五 函數的返回值

1 什么是函數的返回值

?返回值是函數體代碼的運行成果

2 為何要有返回值

?需要拿到函數的處理結果做進一步的處理,則函數必須有返回值

3 如何用:return返回值特點

注: 返回的值沒有類型限制,也沒有個數限制

l return或者函數沒return:返回值為None

ll?return:返回的就是該值本身

lll?return值1 值2 值3:返回元組(值1 值2 值3)

def func():return 1,1.2,'aaa',[1,2,3]pass
res=func()
print(res)     #(1, 1.2, 'aaa', [1, 2, 3])

lV?return是函數結束運動的標志,函數內可以有多個return,但只要執行一次函數就立即結束,并且將return后的值當作本次調用的結果返回.

def func():print('aaaa')return 1print('bbb')return 2print('ccc')return 3func()    #aaaa 只返回第一個return的值

?

四、函數的參數

1.形參:在定義函數時,括號內指定參數(變量名)

1)位置形參:在定義階段,按從左到右順序依次定義的形參

特點:必須被傳值

def func(x,y,z):print(x,y,z)func(1,2,3)   #有且只有三個值,多少都會報錯

??

2)? 默認形參:在定義階段,就已經為某個形參賦值

特點:在定義階段,就已經有值,意味著調用階段可以不用為其傳值,但若傳值,則以傳入的值為準?

默認形參

??注意:位置形參必須放在默認形參的前面?

?3) 形參中*與**的用法

 I. 形參中帶*:*會將溢出的位置實參存成元組的形式然后賦值其后變量名
def func(x,y,*args):
print(x,y,args)
func(1,2,3,4,5,6) # 1 2 (3, 4, 5, 6)
II.形參中帶**:**會溢出的關鍵字實參存成字典的格式然后賦值其后變量名
def func(x,y,**kwargs):
print(x,y,kwargs)
func(1,y=2,z=3,m=1,n=2) # 1 2 {'z': 3, 'm': 1, 'n': 2}

2.實參:在調用函數時,括號內傳入的值(變量值)

?1)位置實參:在調用階段,按從左到右依次傳入的值

特點:這種傳值方式會與形參一一對應

? ? ??func(2,1,3)

?2)? 關鍵字實參:在調用階段,按key=value格式傳值

特點:可完全打亂位置,但仍可為指定形參傳值

? ? ?func(z=3,y=2,x=1)?

復制代碼
注意:可以混用關鍵字實參與位置實參,但是
1. 同一個形參只能被賦值一次
2. 位置實參必須跟在關鍵字實參的前面
func(1,z=3,y=2)
func(1,z=3,y=2,x=333)
func(x=1,2,z=3) # 報語法錯誤
復制代碼
3 )實參中*與**的用法
I. 實參中帶*:先將實參打散成位置實參,然后再與形參做對應
def func(x,y,z):
print(x,y,z)
func(1,[2,3]) # 報錯
func(*[1,2,3]) # 1,2,3
func(*'hello') # 報錯,只需要三個值
func(*'hel') #h e l
II.實參中帶**:先將實參打散成關鍵字實參,然后再與形參做對應
def func(x,y,z):
print(x,y,z)

func(**{'x':1,'z':3,'y':2}) # 1 2 3
 

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/zhouyuquan/p/10038850.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276804.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

百度地圖移動端開發和ArcGIS for Android 開發入門

打開鏈接http://pan.baidu.com/s/1eQpFNWY,可以查看 轉載于:https://www.cnblogs.com/David-Young/p/3827058.html

VSCode 小雞湯 第00期 —— 安裝和入門

簡介 這將是一個新的系列,將會以 Visual Studio Code(后文都簡稱為 VSCode 啦)的操作,環境配置,插件介紹為主,為大家不定期的介紹 VSCode 的一些操作技巧,所以取名 VSCode 小雞湯,本…

.net生成文字圖片

System.Drawing.Bitmap bmpnew Bitmap(Bitmap.FromFile(Server.MapPath("42.jpg")));//載入圖片 System.Drawing.Graphics gGraphics.FromImage(bmp); g.DrawString("abcd測試",new Font("黑體",18),new SolidBrush(Co…

python可以調用windows資源嗎_如何在Windows上用Python調用WinRar?還有問題嗎

使用zipfile模塊,我創建了一個腳本來提取我的歸檔文件,但是這個方法會破壞除txt文件之外的所有內容。在def unzip(zip): filelist [] dumpfold rM:\SVN_EReportingZones\eReportingZones\data\input\26012012 storage rM:\SVN_EReportingZones\eRepor…

SQLServer、Mysql、Oracle 創建、刪除用戶和授予用戶權限

SQLServer 1、創建用戶 CREATE LOGIN [用戶名稱] WITH PASSWORD用戶密碼, DEFAULT_DATABASE[默認數據庫名稱], CHECK_EXPIRATIONOFF, CHECK_POLICYOFF GO USE [數據庫名稱] GO CREATE USER [用戶名稱] FOR LOGIN [用戶名稱] WITH DEFAULT_SCHEMA[dbo] GO 2、授予全庫只讀權限 A…

一次緩存性能問題排查

概述以下分享的都跳過了很多坑,包括redis、tomcat環境配置、機器硬件配置等等問題(與線上保持一致,或者硬件性能減配系數,例如線上:8C16G,壓測:4C8G,系數簡單相差2倍)&am…

python 多個列表_Python同時迭代多個列表

沒有人會記得死的東西,所以要活下去,咬牙切齒的活下去! import sys from itertools import chain from random import randint reload(sys) sys.setdefaultencoding(utf-8) 案例一 要求:一個班級有10個人,考試語數外三…

再讀新疆系列(六)——吹拂“卡拉庫里湖”的風

一下飛機,導游王雪作了簡短的自我介紹,馬不停蹄地帶著我們經喀什市區直接向帕米爾高原的“卡拉庫里”湖走。 問午飯在哪吃? 答:“湖邊”。 “幾點能到?” “大約下午二點多。”媽呀,又經歷一次殘酷的饑餓歷…

記錄一次webpack3升級到webpack4過程

升級之前也參考了一些網上的教程。借鑒之,進行的自己的升級。一些版本為什么設為那個版本號也是參考別人的結果。 整體是按照先升級npm run dev;在升級npm run build的順序。 首先升級webpack,在package.json文件中將webpack版本號修改為4.8.…

linux時間修改-hwclock和date

修改系統時間date 設定日期:date -s 月/日/年,例如設定日期為2018年12月1日,date -s 12/01/2018(年也可以是兩位) 設定時間:date -s hh:mm:ss,例如設定時間為21:15:38,date -s 21:15…

判斷一個字符串是否為回文的遞歸算法

//編譯器&#xff1a;GCC 4.2.1 運行環境&#xff1a;Redflag Linux 6.0 Desktop //如果在VC下編譯可能要加入string和algorithm兩個頭文件并修改函數返回值類型 #include<iostream>using namespace std;int Ifhw(string s,string q,int &i){if(s[i]q[i]&&i!…

plsql如何執行存儲過程_如何理解Spark應用的執行過程

從Spark應用的提交到執行完成有很多步驟&#xff0c;為了便于理解&#xff0c;我們把應用執行的整個過程劃分為三個階段。而我們知道Spark有多種運行模式&#xff0c;不同模式下這三個階段的執行流程也不相同。本文介紹這三個階段的劃分&#xff0c;并概要介紹不同模式下各個階…

JS高級:事件冒泡和事件捕獲;

1、事件&#xff1a;瀏覽器客戶端上客戶觸發的行為成為時事件&#xff1b;所有的事件都是天生自帶的&#xff0c;不需要我們去綁定&#xff0c;只需要我們去觸發 當用戶觸發一個事件時&#xff0c;瀏覽器的所有詳細信息都存在一個叫做event的對象上&#xff0c;我們把它叫做事件…

Vue于React特性對比(三)

最近重學React&#xff0c;再次和vue做了對比。 一&#xff0c;為官方插件提供便利的第三方插件橫行 React僅僅是一個ui框架。雖然官方提供了redux&#xff0c;react-router&#xff1b;但也有第三方的redux-thunk&#xff0c;redux-saga&#xff1b;還有react-router-dom。 而…

MYsql 安裝后啟動服務1067錯誤

今天很奇怪的問題&#xff0c; 新安裝好的數據庫 啟動服務的時候就提示1067錯誤&#xff0c; 在網上找了資料是這樣說的&#xff1a;MYSQL1067錯誤這里看 *************1安裝&#xff2d;&#xff39;&#xff33;&#xff31;&#xff2c;后更改了&#xff32;&#xff2f;&am…

vc如何打開plt圖像_圖像基本操作-open cv

import cv2 import matplotlib.pyplot as plt import numpy as np %matplotlib inline img cv2.imread(revolte.jpg) img # 讀取的是array 格式 array([[[240, 243, 255],[239, 242, 255],[238, 241, 255],...,def cv_show(name,image):cv2.imshow(name,image)cv2.waitKey(0)c…

自學編程需要注意什么?

1。選合適自己的職業&#xff0c;不同的職業門檻不一樣&#xff0c;難度不一樣&#xff0c;或多或少總有差別。 笨的選JS&#xff0c;有點底子的選Java&#xff0c;半調子的選Android或者是IOS-如果這兩個職業還沒完蛋的話。 不想寫代碼的選PM和UI&#xff0c;要求不高的選QA&a…

帆軟報表(finereport)table塊鉆取,返回記住table塊位置

<1>首先table塊加初始化事件&#xff0c;idex為參數&#xff0c;參數值為$tab_idexsetTimeout(function(){_g().getWidgetByName("tabpane0").showCardByIndex(Number(idex)); },10) <2>在table塊鉆取位置&#xff0c;加js事件鉆取var u navigator.user…

python調用api應用接口_Python接口測試之urllib2庫應用

在接口測試中或者說在網絡爬蟲中&#xff0c;urllib2庫是必須要掌握的一個庫&#xff0c;當然還有優秀的requests庫&#xff0c;今天重點來說urllib2庫在接口測試中的應用。urllib2定義了很多的函數和類&#xff0c;這些函數和類能夠幫助我們在復雜情況下獲取URLS的內容。這些情…

破解MS Word 的只讀密碼限制

如果你有Microsoft Office XP 或者 Microsoft Office 2003&#xff0c;你可以使用Microsoft Script Editor 來查看&#xff08;使用AltShiftF11 快捷鍵切換&#xff09;被限制的Word 文檔的HTML&#xff0d;Code。當Word 文檔在Microsoft Script Editor打開后&#xff0c;搜索關…