本文目錄一覽:
- 1、Python筆記–查找以及更改python解析器的位置
- 2、Python筆記-取模運算%
- 3、Python筆記:HTML和CSS 7.8——margin和overflow屬性01
- 4、Python筆記——’utf-8′ codec can’t decode byte 0xc5 in position 0: invalid continuation byte
- 5、Python筆記:Python裝飾器
- 6、python自學筆記13:元組和字典的操作
Python筆記–查找以及更改python解析器的位置
1.
2.
3.圖中箭頭所指即為python解析器的位置
4.在pychram:file-settings-python interpreter-設置-add-new environment-base interpreter將路徑粘到這裡選擇exe文件-existing environment同理
Python筆記-取模運算%
對於該算術運算符: % ,取模運算存在如下定理:
對於一個正整數 而言,一定存在等式 ,代表 可以被拆分成最多 個 並且餘下一個 ,此時稱 。
例如:正整數 17,存在等式 17 = 3 * 5 + 2,即 17 % 5 = 2.
這裡介紹一下數學中的一種運算, 取余運算 。
兩者在對正整數的運算中完全沒有區別,但是對於負整數的運算,則會存在一定的區別。
但是要記住下面這句話,就可以很好的進行區分:
取余公式中的k要向0靠攏,也就是如果大於等於0,那就要向下取整;如果小於0,那就要向上取整。
取模公式中的k要向負無窮靠攏,不管什麼情況,都是向下取整。
或者是
向上取整 math.ceil() 可以理解成 要選擇大於等於該數值的整數部分的最小整數;
向下取整 math.floor() 可以理解成 要選擇小於等於該數值的整數部分的最大整數。
也就是:
下面做些實際運算,加深一下印象:
Python筆記:HTML和CSS 7.8——margin和overflow屬性01
直觀點講就是用外邊距把box撐成居中。
margin也可以用順時針的方式以一個語句定義四個外邊距的大小
margin有一個auto屬性用來設置瀏覽器邊距,只能用在寬度上,不能用在高度上。
可以看到現在box實現了水平居中。
margin和padding一樣可以簡寫。
margin負值可以讓邊框與瀏覽器合併。
margin為0的時候,box與瀏覽器還是有一段距離的,並沒有完全貼邊。
而想要貼邊的話,可以給body單獨一個標籤選擇器,令其margin=0,再讓box類的margin-left=0.
以margin-left為例,給正值,box就向右邊走,而給負值的話,box就向左側走。我們管正值叫正方向,負值叫反方向。
外邊距合併指的是,當兩個垂直外邊距相遇時,它們將形成一個外邊距。合併後的外邊距的高度等於兩個發生合併的外邊距的高度中的較大者。
一個小練習 :製作下面的菜單效果:
效果:
發現中間的線似乎粗了點,這個問題是上一個格子的底邊和下一個格子的頂邊重合導致的。
這時候就要應用到margin的負值了,在選擇器中加入下面這條語句
外邊距合併指的是,當兩個垂直外邊距相遇時,長的外邊距會將短的外邊距替換。
一個例子:
建立兩個盒子之後,我們想設置margin好讓兩個盒子分開。
我們想讓兩個盒子分開的更大一點,於是調整第二個盒子的頂部外邊距
解決方法如下:
Python筆記——’utf-8′ codec can’t decode byte 0xc5 in position 0: invalid continuation byte
在讀取數據時出現如下
‘utf-8’ codec can’t decode byte 0xc5 in position 0: invalid continuation byte
該報錯說明csv文件不是utf-8編碼形式,有兩種方法可以解決。
一種是改變csv文件的編碼,可以用記事本打開csv文件再將其另存為utf-8編碼形式並覆蓋原文件。
另一種方法是先查看csv文件是什麼編碼,我的csv文件為ANSI編碼,然後再添加參數encoding=’ANSI’。
Python筆記:Python裝飾器
裝飾器是通過裝飾器函數修改原函數的一些功能而不需要修改原函數,在很多場景可以用到它,比如① 執行某個測試用例之前,判斷是否需要登錄或者執行某些特定操作;② 統計某個函數的執行時間;③ 判斷輸入合法性等。合理使用裝飾器可以極大地提高程序的可讀性以及運行效率。本文將介紹Python裝飾器的使用方法。
python裝飾器可以定義如下:
輸出:
python解釋器將test_decorator函數作為參數傳遞給my_decorator函數,並指向了內部函數 wrapper(),內部函數 wrapper() 又會調用原函數 test_decorator(),所以decorator()的執行會先打印’this is wrapper’,然後打印’hello world’, test_decorator()執行完成後,打印 ‘bye’ ,*args和**kwargs,表示接受任意數量和類型的參數。
裝飾器 my_decorator() 把真正需要執行的函數 test_decorator() 包裹在其中,並且改變了它的行為,但是原函數 test_decorator() 不變。
一般使用如下形式使用裝飾器:
@my_decorator就相當於 decorator = my_decorator(test_decorator) 語句。
內置裝飾器@functools.wrap可用於保留原函數的元信息(將原函數的元信息,拷貝到對應的裝飾器函數里)。先來看看沒有使用functools的情況:
輸出:
從上面的輸出可以看出test_decorator() 函數被裝飾以後元信息被wrapper() 函數取代了,可以使用@functools.wrap裝飾器保留原函數的元信息:
輸出:
裝飾器可以接受自定義參數。比如定義一個參數來設置裝飾器內部函數的執行次數:
輸出:
Python 支持多個裝飾器嵌套:
裝飾的過程:
順序從裡到外:
test_decorator(‘hello world’) 執行順序和裝飾的過程相反。
輸出:
類也可以作為裝飾器,類裝飾器主要依賴__call__()方法,是python中所有能被調用的對象具有的內置方法(python魔術方法),每當調用一個類的實例時,__call__()就會被執行一次。
下面的類裝飾器實現統計函數執行次數:
輸出:
下面介紹兩種裝飾器使用場景
統計函數執行所花費的時間
輸出:
在使用某些web服務時,需要先判斷用戶是否登錄,如果沒有登錄就跳轉到登錄頁面或者提示用戶登錄:
–THE END–
python自學筆記13:元組和字典的操作
定義元組(tuple):
t1=(1,2,3,4)#多個數據元組
t2=(1,)#如果元組內只有一個數據,也需要手逗號隔開,否則這個數據將是他本身的類型。
元組的操作:
元組類型數據不支持修改,可查找
查找:
按下標查找:
print(t1[1])
函數查找:
print(t1.index(1))返回對應下標,如果數據不存在,程序將報錯
print(t1.count(1))統計數據在元組當中出現的次數
print(len(t1))統計元組當中的數據個數
注意:當元組內嵌套列表數據,可以通過下標的方法對列表數據進行修改如:
t3=(1,2,[“a”,”b”])
t3[2][0]=c #t3的值將變為(1,2,[“c”,”b”])
——————————————————
——————————————————
定義字典(dict)
字典的特點
1:符號為{}
2:數據為鍵(key)值(value)對形式,每個鍵值對之間用逗號隔開如:
dict1={“name”:”小明”,”age”:18,”gender:男”}
字典的操作:
dict1[“name”]=”小紅”
dict1[“id”]=3
如果key存在,將修改其所對應的值。如果不存在,將在字典最後添加該鍵值對
2.刪除數據
del():刪除字典或刪除字典內的鍵值對
del dict1[“name”] 刪除字典內的鍵值對,如果刪除的key不存在,程序將會報錯
del(del)刪除字典
clear(dict1) 清空字典
3.查找數據
一.按照key進行查找,最後返回相對應的值
二.按函數進行查找:
(1) get(key,默認值):
如果查找的key不存在則返回所寫的默認值,如果不寫默認值則返回None
dict1={“name”:”小明”,”age”:18,”gender:男”}
print(dict1.get(“name”)) #小明
print(dict1.get(“id”,110)) # 110
——————————————————
(2) keys():返回字典內的所有key 可用for遍歷
print(dict1.keys())
返回 [“name”,”age”,”gender”]
for key in dict1.keys():
..print(key)
逐行輸出name age gender
——————————————————
(3) values(): 返回字典內的值 可用for遍歷
print(dict1.values())
返回[“小明”,18,”男”]
for value dict1.values():
..print(value)
逐行輸出小明 18 男
——————————————————
(4) items():將字典內的數據以元組的形式返回
print(dict1.items()) 可用for遍歷
返回[(“name”,”小明”),(“age”,18),(“gender”,”男”)]
for item in dict1.items():
..print(item)
逐行輸出 (“name”,”小明”) (“age”,18)(“gender”,”男”)
——————————————————
遍歷字典鍵值對(拆包) 可在for內使用兩個臨時變量
dict1={“name”:”小明”,”age”:18,”gender:男”}
for key,value in dict1.items():
..print(f”{key}=value”)
逐行輸出:
name=小明 age=18 gender=男
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/295442.html