這篇博文是本人在學習《Python基礎教程 (第3版)》的時候所記錄下來的關鍵要點,書中的核心知識點也都在本篇博客中所涉及,需要耐心每天堅持點點滴滴學習進步
第一章 基礎知識
數和表達式
1,執行整除運算//
4//3 —>1,整除的重點在于向下圓整,-10 // 3 向下圓整得到 -4,而不是-3
2,求余(求模)運算符%
x % y 等價于 x - ((x // y) * y)
3,乘方(求冪)運算符**
注意:乘方運算符要比求負(單目運算符)的優先級高,-3 ** 2 等價于 -(3 ** 2)
4,十六進制0x開頭,八進制0開頭,二進制0b開頭
0xAF | 010 | 0b1011010010 |
---|---|---|
175 | 8 | 722 |
5,變量variable,表示特定值的名稱;使用python變量前必須對其賦值,python變量沒有默認值!!!
6,python命名只能由字母、數字和下劃線組成,且不能以數字開頭
7,獲取用戶輸入input,input("please input your name:")
x = input("x:")
y = input("y")
print(int(x) * int(y))
time = input("please input miin")
if int(time) % 60 == 0:print('hours!')
8,函數
內置函數pow 等價于 乘方運算符( ** )
2 ** 3 | pow(2,3) |
---|---|
8 | 8 |
計算絕對值abs
將浮點數圓整為與之最接近的整數round,若在相鄰整數之間一樣近的時候,圓整到偶數
abs(-10) | 2 // 3 | round(2 / 3) |
---|---|---|
10 | 0 | 1.0 |
模塊
可將模塊視為擴展,通過將其導入可以拓展Python的功能
使用import進行導入模塊,再以module.function的方式使用模塊的函數
import math
math.floor(32.9)##floor向下圓整,結果為32
math.ceil(32.3)##ceil返回大于或等于給定數的最小整數,結果為33
math.ceil(32)##結果為32
對于圓整的概念,我是將數從上到下依次遞減理解的54321.910-0.4
-1
-21.9向下圓整就是,向下走,1.9介于2和1之間,向下走,當然就是1了
同樣的道理,-0.4向上圓整就是向上走,-0.4介于0和-1之間,向下走當然就是0了
當然也可以直接從庫里面調用某個函數
from math import sqrt
sqrt(9)##平方根函數,結果為3.0
也可以使用變量來引用函數
from math import sqrt
yanyu = sqrt
yanyu(4)##結果為2.0
專門處理復數的模塊cmath
sqrt只能計算非負數的平方根,若使用其計算負數,則會報錯
負數的平方根為虛數,而由實部和虛部組成的數為復數,1j是個虛數,虛數都是以j(或J)結尾。-1的平方根是1j
import cmath
cmath.sqrt(-1)##結果為1j(1+3j) * (9+4j)##結果為(-3 + 31j)
有趣的海龜繪圖法
from turtle import *
##最終的效果是繪制一個三角形
forward(100)
left(120)
forward(100)
left(120)
forward(100)
字符串
注釋就不多說了吧, # 即可
1,轉義
python中的單引號和雙引號實則都是對字符串的輸出
主要區別就在于
let's go to school
此時就不能再使用單引號了,需要使用雙引號
當然也可以\來對單引號進行轉移操作,讓python明白引號之間的是字符串的一部分,而不是字符串的結束標志
let\'s go to school' #結果為:let's go to school
\"hello beyond\" #結果為:"hello beyond"
2,拼接字符串
"hello, " + "beyond!" #結果為:hello,beyondx = "hello,"
y = 'beyond'
x + y #結果為:hello,beyond
3,字符串表示str和repr
"Hello, world!" #結果為:'Hello, world!'
print("Hello, world!") #結果為:Hello, world!"Hello,\nworld!" #結果為:'Hello,\nworld!'
print("Hello,\nworld!")
"""
結果為:
Hello,
world!
"""#使用str能以合理的方式將值轉換為用戶能夠看懂的字符串
#使用repr時,通常會獲得值的合法Python表達式表示
print(repr("Hello,\nworld!")) #結果為:'Hello,\nworld!'
print(str("Hello,\nworld!"))
"""
結果為:
Hello,
world!
"""
4,長字符串、原始字符串和字節
1,長字符串
要表示很長的字符串(跨行)時,使用三個單引號或三個雙引號來表示
print("""there is a very
long
word
""")
輸出結果:
there is avery
long
word#常規字符串也可橫跨多行。只要在行尾加上反斜杠,反斜杠和換行符將被轉義,即被忽略
1+2+3+\
4+5
#結果:15
2,原始字符串
原始字符串用前綴r表示,即原樣輸出即使帶有轉義字符\也沒啥卵用
原始字符串不能以單個反斜杠結尾
print(r'Let\'s go!') #結果為:Let\'s go!
print(r'C:\beyond\zhendeaini\haikuotiankong\xihuanni') #結果為:C:\beyond\zhendeaini\haikuotiankong\xihuanniprint(r"This is illegal\")#結果為:編譯器會報錯,原因為原始字符串不能以單個反斜杠結尾
print(r“This is illegal” '\\')#結果為:This is illegal\
3,字節
源代碼也將被編碼,且默認使用的也是UTF-8編碼。
如果你想使用其他編碼(例如,如果你使用的文本編輯器使用其他編碼來存儲源代碼),可使用特殊的注釋來指定。# -*- coding: encoding name -*-
請將其中的encoding name替換為你要使用的編碼(大小寫都行),如utf-8或latin-1
Python還提供了bytearray,它是bytes的可變版。從某種意義上說,它就像是可修改
的字符串——常規字符串是不能修改的
要替換其中的字符,必須將其指定為0~255的值。要插入字符,必須使用ord獲取其序數值(ordinal value)
x = bytearray(b"Hello!") #b代表二進制,H為第0位,e為第1位
x[1] = ord(b"u") #將u代替e
x #輸出結果:bytearray(b'Hullo!')
本章節介紹的新函數
函 數(方括號內的參數是可選的) | 描 述 |
---|---|
abs(number) | 返回指定數的絕對值 |
bytes(string, encoding[, errors]) | 對指定的字符串進行編碼,并以指定的方式處理錯誤 |
cmath.sqrt(number) | 返回平方根;可用于負數 |
float(object) | 將字符串或數字轉換為浮點數 |
help([object]) | 提供交互式幫助 |
input(prompt) | 以字符串的方式獲取用戶輸入 |
int(object) | 將字符串或數轉換為整數 |
math.ceil(number) | 以浮點數的方式返回向上圓整的結果 |
math.floor(number) | 以浮點數的方式返回向下圓整的結果 |
math.sqrt(number) | 返回平方根;不能用于負數 |
pow(x, y[, z]) | 返回x的y次方對z求模的結果 |
print(object, …) | 將提供的實參打印出來,并用空格分隔 |
repr(object) | 返回指定值的字符串表示 |
round(number[, ndigits]) | 四舍五入為指定的精度,正好為5時舍入到偶數 |
str(object) | 將指定的值轉換為字符串。用于轉換bytes時,可指定編碼和錯誤處理方式 |