day01筆記
python簡介
創(chuàng)建人:Guido Van Rossum(荷蘭人)
時間: 1989年創(chuàng)建Python
python的應(yīng)用領(lǐng)域
系統(tǒng)運(yùn)維
網(wǎng)絡(luò)編程,
科學(xué)計(jì)算
人工智能,機(jī)器人
web開發(fā)
云計(jì)算
大數(shù)據(jù)及數(shù)據(jù)庫編程
教育,
游戲,圖像
其他
python的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
面向?qū)ο螅↗ava,C++,Python)
免費(fèi),可移植,可混合編程,簡單易學(xué)易用,開發(fā)效率高,
應(yīng)用領(lǐng)域廣泛,開源
缺點(diǎn):
與C/C++相比,執(zhí)行速度不夠快不能封閉源代碼
Python的安裝:
兼容的操作系統(tǒng):
Windows
Linux/Unix
MaxOSx
Python的運(yùn)行
python的解釋執(zhí)行器的類型
CPython(C語言開發(fā))
Jython (Java語言開發(fā))
IronPython(。net開發(fā))
第一個python程序:
打開sublime tex.3 編寫hello。py
內(nèi)容寫:
print(“hello world”)
執(zhí)行hello。py
python hello。py
常用的程序文件的后綴
。py python文件后綴
。c c語言文件后綴
。cpp c++語言文件后綴
。java java語言文件后綴
python的交互模式下編寫并執(zhí)行代碼:進(jìn)入python交互環(huán)境
#python 《回車》
推出python交互提示模式
》〉》quit()《回車》
〉》〉exit() 〈回車〉
輸入:ctrl+d(輸入文件結(jié)束符)
python的注釋:
python的注釋是一#開頭的,直至行尾
作用:
讓注釋內(nèi)容不參加解釋執(zhí)行
python程序組成
程序由模塊組成
模塊由語句,函數(shù),類等組成
語句包含表達(dá)式
表達(dá)式建立并處理數(shù)據(jù)對象
python 的核心數(shù)據(jù)類型
數(shù)字(整型,浮點(diǎn)型,復(fù)數(shù),布爾型)
字符串 str
列表 list
。。。
數(shù)字:
整型: int
整型數(shù)是不帶有小數(shù)部分的數(shù)據(jù),包括自然數(shù),0,復(fù)數(shù)如: -5,0,100等可以包含很多位,不需要考慮越界
整型字面值的表示方式
十進(jìn)制表示:
10,20,30
八進(jìn)制方式表示(0o開頭,后跟0~7)
0o11,(9)
0o177(127)
十六進(jìn)制表示(0x開頭,跟0~9,A~F)
二進(jìn)制的表示(0b開頭,后跟0~1)
浮點(diǎn)型數(shù) float
浮點(diǎn)型數(shù)是帶有小數(shù)部分的數(shù)字(小數(shù)部分可以是0)
小數(shù)形式;
3.14, 3.2
科學(xué)計(jì)數(shù)法:
小數(shù)e/E(正負(fù)號)指數(shù)
如:
6.18E-1等通同與0.618
2.9979e8 等同于29799
復(fù)數(shù): complex
分為兩部分:
實(shí)部(real)
虛部(image)
注:虛部是以j或J結(jié)尾的
復(fù)數(shù)的字面值表示
1j
(2J)
1-1j
布爾型數(shù) bool
用來表示真和假兩種狀態(tài)的類型
True表示真(條件滿足成立)True的值是1
False的值是0
空值
None是一個表示不存在的特殊對象
作用:
用來占位
變量解除綁定
表達(dá)式和運(yùn)算符
表達(dá)式 expression
由一個數(shù)字或運(yùn)算符組成
作用:
通常讓計(jì)算機(jī)做一些事情并返回結(jié)果
算數(shù)運(yùn)算符:
+ 加法:
- 減法:
* 乘法
/ 除法
// 地板除 floordiv
% 取余
** 密運(yùn)算
/ 除法
除法得到的數(shù)是浮點(diǎn)數(shù),不會丟棄小數(shù)部分
1/3 得0.333333
8/2 得4.0
// 地板除
除得結(jié)果去掉小數(shù)部分向下取整
7/3得2.3333
7//3 得 2
8//3 得 2
3.25 //1.5 得 2.0
abs(a):
求一個數(shù)的絕對值
divmod(a,b):
內(nèi)建函數(shù)divmod()返回的是兩個值,這兩個值在一個圓括號里,圓括號中第一個數(shù)字表示商,第二個數(shù)表示余數(shù)
round(a,b)
內(nèi)建函數(shù)round(),第一個參數(shù)表示任意一個數(shù),第二個參數(shù)表示要保留的小數(shù)位數(shù),返回值是一個四舍五入后的數(shù)值.
dir(module):
是一個非常有用的指令,可以通過它查看任何模塊中包含的工具
help(math.pow)
help函數(shù)可以幫助我們更好的理解函數(shù)的概念
python 金句: ( 變量無類型,對象有類型)
變量只是一個標(biāo)簽,所有沒有類型之說,它不僅可以貼在整數(shù)類型的對象上,還能貼在其他類型的對象上,(即可以四處張貼的標(biāo)簽)
對象是有類型的,eg: str,int,float,list
括號分組子表達(dá)式
用()可以將表達(dá)式分組(),()內(nèi)部的表達(dá)式先進(jìn)行計(jì)算
練習(xí):
1. 用交互模式計(jì)算:
1)一個商店,西瓜是7元一個,你帶20元可以買幾個西瓜,找零多少
# 一共20元錢,7元一個西瓜,一共可以買多少個西瓜
print("一共可以買: "+ str((20 // 7))+"個西瓜,剩余"+str((20 % 7) )+"元")
2)一個學(xué)生的畢業(yè)薪資是10000元每年漲20%,十年后他的薪資是多少啊
print("十年后的薪資是: " +str((10000*(1+0.2)**10)))
混合類型自動升級:
1 + 2.15 返回類型為浮點(diǎn)型 3.15
基本輸出函數(shù): print
格式:
print(要打印的東西)
# 練習(xí): 1. 已知矩形的長邊長為6cm,短邊長為4cm,用表達(dá)式求周長和面積
print("周長: "+str((6+4)*2)+" 面積: "+str(4 *6 ))
# 方式2(
print("周長: ",(6+4)*2,"面積",4 * 6)
變量:
什么是變量
變量是關(guān)聯(lián)一個對象的標(biāo)識符
變量可以綁定一個對象,并可以通過變量名來使用這個對象的標(biāo)識符的命名方法
標(biāo)識符的命名方法
標(biāo)識符必須為**字母**或**_開頭**,后跟字母或下劃線或數(shù)字說明
不能使用python的關(guān)鍵字做變量名
python變量名區(qū)分大小寫
合法的變量名
a1 a bb _adsf adf
不合法的變量示例:
1q 123 #asb +a -nb
python 的關(guān)鍵字總共有33個
True,False,None.,is,del,if elif...
連接語句
語法:
變量名+變量名:
a = 100
b = 200
a + b #300
c="asjd"
a+c # Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: unsupported operand type(s) for +: 'int' and 'str'
用法:
用"+"拼接起來的兩個對象必須是同一種類型的,如果兩個都是數(shù)字,毫無疑問是可以的就是求和,如果都是字符串會得到一個新的字符串,
補(bǔ)充:
str(a)函數(shù):
實(shí)現(xiàn)將整數(shù)對象轉(zhuǎn)換為字符串對象
repr(a)函數(shù):
也可以是實(shí)現(xiàn)同樣的效果
int(a)函數(shù):
實(shí)現(xiàn)可以將str,float類型的對象轉(zhuǎn)換為整數(shù)對象(默認(rèn)去除小數(shù)點(diǎn)后面所有的數(shù)字,不進(jìn)行四舍五入)
賦值語句
語法:
變量名= 表達(dá)式
或 變量名1 = 變量名2 = 變量名3
或 變量名1,變量名2,變量名3 = 序列
作用:
創(chuàng)建一個變量或修改一個變量的綁定的對象.
說明:
當(dāng)變量不存在時,創(chuàng)建該變量,同時將變量綁定在這個對象上
當(dāng)變量存在時,改變此變量綁定的對象
一個變量只能綁定一個對象
兩個變量可以同時綁定在同一個對象上
示例:
a = 10
b = 20
a = b# a綁定在 b綁定的對象上,a與10 解綁,綁定在20上
r = 10
a = 6
b = 4
area = a * b # 等于area = 6 * 4
x = y =z = 1000
x,y = 100,200 # 等價于 x綁定100, y 綁定200
python 中自動化內(nèi)存管理(重點(diǎn))
a = 1000
b = 1000
a = a + b #
c = a # a 和c 同時綁定在2000上
del b # 當(dāng)刪除b時,b上的引用計(jì)數(shù)會減為0,會被回收
python 關(guān)聯(lián)/綁定/引用 的含義
在python中,變量沒有類型
關(guān)聯(lián)/綁定/引用都是指一個變量 和 一個對象的關(guān)聯(lián)關(guān)系
練習(xí):
1. 指定一個半徑 r = 3 cm的圓
1)計(jì)算圓的周長是多少厘米 length = (3.14 * 2 *3 )
2)計(jì)算圓的面積是多少平方厘米 area = 3.14*3**2
問?
a = 3
b = 4
a = a + b
a = a - b
b = a - b
在不創(chuàng)建任何新對象的情況下,如何讓a和b交換綁定的對象
a = 1
b = 2
print("變換之前:",a,b)
注:在python中變量相當(dāng)于貼在對象上的標(biāo)簽,這個操作只不過是將標(biāo)簽換了個位置,就分別指向了不同的數(shù)據(jù)對象
#方法0 (序列復(fù)制)
a,b = b,a
#方法1
a = a + b
b = a - b
a = a - b
print("變換之后",a,b)
#(方法2)
a = a^b
b = a^b
a = a^b
print("變換之后:",a,b)
交互模式下查看當(dāng)前作用域內(nèi)的所有變量
>>> help("__main__")
>>> help("__main__")
```
Help on module __main__:
NAME
__main__
DATA
__annotations__ = {}
a = 20
b = 10
x = 100
y = 200
z = 100
FILE
(built-in)
```
注: help函數(shù)用來查看幫助或運(yùn)行時信息
del語句 (delete簡寫)
用于刪除變量,同時解除此變量與對象的綁定關(guān)系 如果可能則刪除對象
語法:
del 變量名
del a # 刪除a變量,
自動化內(nèi)存管理和引用計(jì)數(shù)
每個對象會記錄有幾個變量引用自身,當(dāng)引用的數(shù)量為0時,此對象被銷毀,此種自動化內(nèi)存管理的方式即為引用計(jì)數(shù)
a = 10
b = 20
a = b # 釋放10 的同時 將a綁定在20上
del a # 刪除a變量,同時將20 引用計(jì)數(shù)-1
del b # 刪除b變量,同時將20 刪除
is/is not 運(yùn)算符
作用:
判斷兩個對象是否是同一個對象,當(dāng)是同一個對象時返回True,否則返回false
is not 的作用和is相反
語法:
x is y()
s is not y
小整數(shù)對象池:
CPython 中整數(shù)-5 至 256永遠(yuǎn)在小整數(shù)對象池中,不會釋放并可重復(fù)使用
eg
```
x = 10
y = 10
x is y # True
a = 1000
b = 1000
a is b # False
```
id(x) 函數(shù)
作用:
返回一個變量在內(nèi)存中的地址
練習(xí):
1. 在終端中打印出如下圖形(注: python3中print不換行可以加個參數(shù)end="")
*
***
*****
*******
```
for i in range (5):
a = i*2 +1
b = 10 -i
# 輸入空格數(shù)
while (b >= 1):
print(" ", end="")
b = b - 1
#輸入* 數(shù)
while( a >= 1):
print("*",end="")
a = a -1
print()
```
2. 中國的秤時16兩一斤,請問中國古代的216兩時古代的幾斤幾兩?寫程序打印出來
```
# 中國的秤時16兩一斤, 請問中國古代的216兩時古代的幾斤幾兩?寫程序打印出來
# 定義a 表示總兩數(shù)
a = 216
# 定義兩轉(zhuǎn)換斤的進(jìn)制
b = 16
# 輸出結(jié)果
print("古代216兩相當(dāng)于:",216//16,"斤", 216%16, "兩")
```
3. 從凌晨 0:0:0記時,到現(xiàn)在已經(jīng)走過了63329秒,
請問現(xiàn)在是幾時幾分幾秒?寫程序打印出來
提示:可以用地板除和求余來實(shí)現(xiàn)
```
# 從凌晨 0:0:0記時,到現(xiàn)在已經(jīng)走過了63329秒,
# 請問現(xiàn)在是幾時幾分幾秒?寫程序打印出來
# 提示:可以用地板除和求余來實(shí)現(xiàn)
a = 63329
h = a//(60*60)
m = (a-h)%60
s = a %60
print(h,":",m,":",s)
```
4. 溫度轉(zhuǎn)換:
攝氏度 = 5.0/9.0 * (華氏溫度-32)
開氏溫度 = 攝氏溫度 + 273.15
問:
100華氏度溫度轉(zhuǎn)換為攝氏溫度是多少度?
轉(zhuǎn)為開始度是多少度?
```
hua = 100
s = (5.0 /(9.0*(hua-32)))
k = s+273.15
print(s,k)
``