python入門知識點(上)
1.硬體系統:
主機部分:
1.中央處理器(CPU): 電腦的大腦
運算器: 數值計算和邏輯判斷
控制器: 可以電腦中的各個部件協同工作
2.內部儲存器:
隨機儲存器:記憶體條
使用電訊號表示資料;
特點:
1.讀寫資料速度快
2.臨時儲存資料
只讀儲存器
外設部分:
輸入裝置:
鍵盤
滑鼠
攝像頭
輸出裝置:
顯示器
音箱
印表機
外部儲存器:
U盤
硬碟:
使用磁表示資料.
特點:
1.讀寫資料的速度慢
2.永久儲存資料
行動硬碟
軟體系統
計算機只有硬體,沒有軟體,這臺計算機就是一個裸機.
1.作業系統:
是一個大型軟體,是一個最基本最重要的軟體,它可以管理硬體和支援其它軟體的執行.
作用:
(1).控制硬體,支援其它軟體的執行
(2).給使用者提供了3種使用硬體的方式:
圖形介面
命令列視窗
系統介面
2.裝置驅動程式
管理硬體.
作業系統是通過驅動程式來管理硬體的.
3.編譯器(語言處理程式):
用來把程式設計師開發的程式 翻譯 成 機器指令的.
計算機底層使用001010之類的數字序列來儲存資料.計算機只認識01010這樣的資料(機器指令,二進位制資料,位元組資料)
4.計算機程式執行的過程
print("hello")
5.程式語言
C,C++,Java,GO,C#,Python
程式語言:
是一種人與計算機之間進行交流的語言.
6.python的認識
python的特點:
1.功能強大
2.擴充套件性強
3.語法簡單易學
4.免費開源
7.註釋
註釋:
用於解釋說明程式的文字.
作用:
用於解釋說明程式,讓別人能夠看懂你的程式.
註釋不會被執行,只是用來給開發人員看的.
分類:
1.單行註釋
註釋的文字只能寫成一行
格式:
# 解釋的文字
可以新增在程式碼的上面或者右邊.
快捷鍵: Ctrl + /
2.多行註釋
註釋的文字只能寫成多行
格式:
'''
解釋的文字
解釋的文字
解釋的文字
解釋的文字
'''
"""
解釋的文字
解釋的文字
解釋的文字
解釋的文字
"""
什麼時候添加註釋?
1.程式碼的邏輯比較複雜難懂
2.核心程式碼
在python的語法規範中推薦使用的方式:
# -*- coding:utf-8 -*-
8.變數的概念
計算機執行程式的目的是 :為了處理資料.
計算機程式處理的資料往往是外界提供的.自己把資料臨時儲存起來,然後再處理.
在程式中如何臨時儲存資料?
使用 變數 臨時儲存資料.
從本質上講,變數是儲存中的一塊區域.
9.定義變數及其使用
在記憶體中開闢一塊區域儲存資料.
定義格式:
變數名 = 數值
通過變數名來使用.
10.變數的型別(資料型別)
11. 關鍵字
識別符號:
給變數,函式,類,檔案取的名字.
識別符號的命名規則:
1.必須遵守的規則
識別符號由字母、下劃線和數字三種組成,且數字不能開頭.
而且不能是關鍵字.
2.開發的習慣
見名知意
a = 10
age = 10
name = "張三"
關鍵字:
在python語言中已經賦予了特殊的含義,已經被python語言使用了的單詞.
檢視關鍵字:
1.匯入工具包:keyword
import keyword
2.呼叫工具包中的功能,獲得關鍵字列表:
print(keyword.kwlist)
11.變數的型別
基本的資料型別:
數字型別:
整數:int :1 2 3
小數:float :3.14 -2.5
布林型別:bool
比較特殊,只有兩個值:True和False,非零的數字表示True,0表示False
字串型別:str
使用雙引號或者單引號引住的任何資料,都叫做字串.
"hello" 'world' "10" "" " " "5" "&>"
高階的資料型別:
字串
列表
元組
字典
set集合
11.不同型別資料間的運算
/ 除號
% 取餘,取模
#兩個整數相除
print(10 / 2) # 5.0
print(10 / 3) # 3.3333333333333335
# 取餘: 如果這個資料餘上2 結果為0,那麼這個數一定是一個偶數
print(3 % 2)
print(10 % 2)
print("1.2")
# 字串與整數不能相加:TypeError: must be str, not int
# print("hello"+2)
# 字串與整數相乘:會把字串拼接n次,這個n是整數
print("hello"*3)
# 字串與字串相加:這裡的+號,是字串連線符
print("hello" + "world" + "python")
12.輸出
呼叫直譯器自帶的print()函式,把資料輸出到控制檯.
如果輸出的字串中包含了變數的值,需要在字串中使用格式化操作符來佔位.
格式化操作符:
字串:%s
整數:%d %nd
小數:%f %.2f
不確定變數的型別時,使用%s.
如果輸出的字串中包含了多個變數的值,需要在%後面使用小括號括住多個變數,變數之間使用逗號隔開,注意變數的順序與格式化操作符的順序一一對應.
13.輸入
從鍵盤上錄入一個數據,並且得到這個資料.
需要呼叫直譯器提供的一個函式input("提示語"):
這個函式可以讓你在鍵盤上錄入一個數據,並且得到這個資料.
這個函式比較特殊:
不管在鍵盤上錄入的資料是什麼型別的,這個函式得到的就一個字串型別的資料.
14.資料型別轉換
目標資料型別(資料)
例如:
a = "10"
int(a)
把字串a 轉成int型別的數字.
b = 10 # int型別
# 把數字b轉成字串型別的
str(b)
15.認識Bug
Bug是指程式中出現的不正常的情況:
1.程式出錯
2.程式執行的結果不是預期的結果
出現bug的原因:
1.因為手誤
2.對技術的理解不夠深入
16 .Debug除錯程式
除錯程式: 檢視程式執行的過程,找到出現bug的原因,並且修改錯誤.
Debug除錯(斷點除錯):
斷點:在程式中加上的一個標記;
斷點除錯:
在程式中加上斷點,通過檢視程式執行的過程,找到出現bug的原因,並且修改錯誤.
Debug程式時,程式碼執行到斷點的那一行,就會停住.
停在這一行,意思是說即將執行這一行但是還沒有執行.
17.關係運算符
> ,< ,== ,!=
>= ,<=
作用:用來比較兩個資料之間的關係的.
比較的結果一定是一個布林型別的值,要麼是True,要麼是False.
18.if語句的第一種格式
python語言中的流程控制語句:
1.順序語句
print("A")
print("C")
print("D")
print("B")
2.條件分支語句
if語句有三種格式:
第一種格式:
if 關係表示式:
語句體
語句體:可以是一行程式碼,也可以是多行程式碼
3.迴圈語句
19.if語句的第二種方式
格式:
if 關係表示式:
語句體1
else:
語句體2
....
20.邏輯運算子
21.if語句的第三種格式
格式:
if 關係表示式1:
語句體1
elif 關係表示式2:
語句體2
... # 表示省略了0個或者多個elif語句
else:
語句體n+1
執行流程:
1.先執行關係表示式1,看其結果True還是False;
2.如果為True,就執行語句體1;
3.如果為False,就執行關係表示式2,看其結果True還是False;
4.如果為True,就執行語句體2;
5.如果為False,就執行下一個關係表示式,看其結果True還是False;
6.如果以上所有關係表示式的結果都是False,就執行語句體n+1;
22. if語句的巢狀的使用
在if語句的格式中在寫一個if語句格式.
格式:
if 關係表示式1:
語句體1
if 關係表示式2:
語句體2
else:
語句體3
else:
語句體4
執行流程:
1.先執行關係表示式1,看其結果True還是False;
2.如果為True,就執行語句體1,然後執行關係表示式2,看其結果True還是False;
3.如果為True,就執行語句體2;
4.否則就執行 語句體3;
5.如果關係表示式1的結果為False,就執行語句體4;
23. 複合賦值運算子
+=: 使用左右兩邊的資料相加,得到一個結果,然後把結果賦值左邊的變數.
a = 5
a -= 1 # a = a-1
24. 運算子的優先順序
算術運算子
關係運算符
邏輯運算子
優先順序從上往下,由高變低.
and or 的優先順序是一樣的.
如果想修改表示式的運算順序,可以通過新增小括號的方式來修改.
not 的優先順序是最低
25. while迴圈語句格式和執行流程
迴圈語句:
重複的執行指定的程式碼塊;
while迴圈語句;
for迴圈語句;
while迴圈語句的格式:
初始化語句①
while 條件語句②:
迴圈體語句③
條件控制語句④
執行流程:
①②③④ - ②③④ - ②③④-...,當②的結果為False,就結束整個while迴圈
26.while迴圈練習題-求0-100之間偶數的累加和
#encoding=utf-8
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum = sum + i
i+=1
print("1~100的累積和為:%d" % sum)
27.break和continue的用法:
break:終斷,結束的意思
continue:繼續的,跳過本次迴圈,繼續下一次迴圈;
這兩個關鍵字只能用在迴圈語句中,單獨使用沒有意義.
28. while巢狀迴圈
格式:
初始化語句①
while 條件判斷語句②:
迴圈體語句③
初始化語句
while 條件判斷語句:
迴圈體語句
條件控制語句
條件控制語句④
29.轉義字元
\n : 換行符
\ 是轉義字元,可以改變某一個字元的功能.
30. 容器的概述
容器是用來儲存多個數據.
可以查詢容器的中某一個數據,和所有資料.
可以向容器中新增資料,修改資料,刪除資料.
常見的容器:
字串
列表
元組
字典
set集合
這幾種容器都是資料型別,與前面講的int,float,bool類似;
int,float,bool型別的變數裡面只能儲存一個數據;
容器型別的變數中可以儲存多個數據.
31. 字串的概述
使用雙引號或者單引號引住的內容叫做字串.
字串中可以儲存多個字元.
字串中的每個字元都叫做一個元素;
每個元素都有自己的編號,這個編號也叫做索引,角標,下標.
索引是從0開始的,第一個元素的的索引是0,往後依次加1,
最後一個元素的索引是 "元素的個數-1".
操作字串字串時可以通過索引操作字串,比如,根據索引得到裡面某一個字元,或者得到某幾個字元等.
32. 字串的定義和輸出
使用雙引號或者單引號引住的內容叫做字串.
列印字串變數,打印出來的是字串的內容.
"he'aa'llo" 'he"aa"llo'
定義格式:
變數名 = "字串內容"
s = "hello"
print(s)
我的名字是xxx
name = "zhangsan"
print("我的名字是" + name )
33.字串的查詢,for迴圈遍歷和替換的方法
根據索引查詢字元.
s = "hello python"
s[3]
s.find(str) 表示“str”在“s”中第一次出現的索引。(找不到不會報錯)
s.index(str) 表示“str”在“s”中第一次出現的索引。(找不到會報錯)
s.rfind(str) 表示“str”在“s”中最後一次出現的索引。
s.rindex(str) 表示“str”在“s”中最後一次出現的索引。
s.count(str) 表示“str”在“s”中出現的次數。
s.replace(odlstr,newstr,count) 表示用新字串替換舊字串,count表示替換次數。
s.split(str) 表示用str分割。
s.strip() 表示刪除字串兩端的空白字元。
s.isalpha() 表示判斷字串是否都是字母。
s.isdigit() 表示判斷字串是否都是數字
s.isdecimal() 表示判斷字串是否都是字母
s.alnum() 表示判斷字串是否只有數字或者字母。
s.isupper() 表示判斷字串是否全為大寫字母。
s.islower() 表示判斷字串是否全為小寫字母。
s.startswith() 表示判斷字串是否以()開頭。
s.endswith() 表示判斷字串是否以()結尾。
s.upper() 所有字母改為大寫字母。
s.lower() 所有字母改為小寫字母。
34.字串的切片
就是擷取字串
切片的語法:
字串[開始索引:結束索引]
從開始索引的字元開始擷取,以直接渠道結束索引的字元,包括開始索引的字元,但是不包括結束索引的字元.
35.字串的步長
字串[開始索引:結束索引:步長]
36.列表的定義及使用
列表:也是一個容器,是用來儲存多個數據的,每個資料可以是任何型別的.
可以向列表中新增資料,刪除資料,修改資料,查詢資料.列表中的每個資料都叫做元素.
元素都有自己的編號,也叫做索引,角標,下標.
格式:
list1 = [10,30,50]
37.列表新增和刪除元素的方法
list[1] = 30 表索引為“1”的元素。
list.append(資料) 新增一個元素。
list.remove(元素) 刪除一個元素。
list.pop(索引) 刪除指定索引的元素。
list.pop() 刪除最後一個元素。
List[0] = 20 → 表示列表索引為0的元素改為20. list1 = [20,30,50]
38. 列表的巢狀
列表中的元素也可以是一個列表.
39. 元組的的定義和使用
元組也是一個容器,與列表類似,可以把它看做一個不能用於修改的列表,也就是元組只能查詢.
定義元組的格式:
元組名 = (元素1,元素2,元素,...)
元素可以是任何型別的.
40. 字典的概述
字典用兩列儲存資料,儲存的資料是一對一對的,每對資料都是一個鍵(key)和一值(value)組成的,叫做鍵值對,要想查詢值,必須通過鍵 查詢.
根據鍵得查詢值的效率非常高.
字典中的key不能重複,value可以重複.
41.字典的定義格式
字典名 = {key1:value1,key2:value2,...}
value可以是任何型別的資料.
key通常是整數或者字串型別的.
42.字典的查詢,修改和刪除鍵值對的方法
查詢value:
字典名[key]:如果key不存在,會報錯
字典名.get(key) :如果key不存在,不會報錯
新增新的鍵值對:可以在字典中不存在
字典名[key] = value
修改value:必須保證key存在
字典名[key] = value
刪除鍵值對:
字典名.pop(key)
del 字典名[key]
del 列表名[索引]
43.字典遍歷鍵值對的兩種方式
方式一:
1.先得到所有的key;
2.遍歷key,通過key得到value;
Keys =字典名.keys()
For key in keys:
Value = 字典名.get(key)
Print(“key = %s,value = %s” % (key,value))
方式二:
- 得到所有鍵值對:
Items = 字典名.items()
- 遍歷鍵值對,得到key和value
For key,value in items:
Print(key + “=” + value)
44. set集合的定義和使用
set集合與列表非常類似,但是它裡面不能儲存重複的資料.set集合中沒有索引這個概念.
定義格式:
set集合的名字 = {元素1,元素2,元素3,...}
45. set集合的查詢,修改和刪除元素的方法
set.add() 新增元素
set.update(set2) 把set2中set1裡沒有的元素加進去
set.remove(“hello”) 刪除“hello“這個元素”
46. 列表、元組、set之間的類轉換
列表轉元組:tuple1 = tuple(list1)
元組轉列表:list2 = list(tuple1)
列表轉set集合:set1 = set(list1)如果列表中有重複元素,set集合會自動刪除重複的元素。
47.容器的總結
字串:
字串中儲存的是字元.每個字元都是一個元素.
不能被修改.長度是固定的.
列表:
列表的內容可以修改;
是按照新增資料的順序來儲存資料的.
列表的長度是可以改變的.
元素可以是任何型別的.
使用[ ]定義.
元組:
是一個只能用於查詢的列表.
使用( )定義.
字典:
使用鍵值對來儲存資料.沒有索引,只能通過key得到value.
使用兩列儲存資料.
字典通過key查詢value的效率比較高.
使用{}定義.
set:
與列表類似,都是用一列儲存資料的.與列表最大的區別是,不能儲存重複的資料.
使用{ }定義.
48. 函式的概述
"""
把程式碼中重複的程式碼單獨抽取出來,作為一個獨立的程式碼看,然後在需要的地方呼叫它.
這個程式碼叫做函式.
函式的好處:
1.可以讓程式碼結構變的更加簡潔清晰.
2.提高程式碼的重複使用率.
3.可以提高開發效率.
49. 函式的定義及呼叫
def 函式名():定義
程式碼………
程式碼………
函式名()呼叫
50. 函式的呼叫過程
定義函式的格式:
def 函式名():
函式體
函式體就是一個程式碼塊,可以是一行或者多行程式碼.
如果只是定義了函式,但是沒有呼叫函式,函式裡面的程式碼是不會被執行的.
呼叫函式的格式:
函式名()
函式呼叫的過程:
程式碼執行到這一行,就是在記憶體中記住這個函式,
等以後呼叫函式時,直譯器會來到這記憶體中找到這個函式,
找到這個函式後,就會執行函式裡面的程式碼.找不到就報錯