CPU:處理指令和運算數據
內存:臨時存儲CPU要處理的數據
硬盤:永久存儲數據
常識:網卡之後常常重啟。因為網卡是因為CPU不斷的從硬盤調用數據,導致內存變滿。重啟會清空內存。
Google開源機器學習框架:TensorFlow
開源社區主推學習框架:Scikit-learn
百度開源深度學習框架:Paddle
Python解釋器作用:運行文件
(1)種類:
CPython:C語言開發的解釋器(官方),應用廣泛的解釋器。
IPython:基於CPython的一種交互式解釋器。
PyPy:基於Python語⾔開發的解釋器。
Jython:運⾏在Java平台的解釋器,直接把Python代碼編譯成Java字節碼執⾏。
IronPython:運⾏在微軟.Net平台上的Python解釋器,可以直接把Python代碼編譯成.Net的字節碼。
(2)Python環境下載
(3)Pycharm相關知識
PyCharm是⼀種Python IDE(集成開發環境),帶有⼀整套可以幫助⽤戶在使⽤Python語⾔開發時提⾼其效率的⼯具,內部集成的功能如下:Project管理+智能提示+語法⾼亮+代碼跳轉+調試代碼+解釋代碼+框架和庫
(4)Pycharm的基本使用
項⽬根⽬錄或根⽬錄內部任意位置—右鍵-- [New] – [Python File]–輸⼊⽂件名-- [OK]。如果是將來要上傳到服務器的⽂件,那麼⽂件名切記不能⽤中⽂。
修改解釋器:
注釋分為兩類:單⾏注釋和多⾏注釋。(ctrl+/)
單⾏注釋:只能注釋⼀⾏內容,
#語句內容
print("hello Python") #輸出(簡單的說明可以放到⼀⾏代碼的後⾯,⼀般習慣代碼後⾯添加兩個空格再書寫注釋⽂字)
多⾏注釋:可以注釋多⾏內容,⼀般⽤在注釋⼀段代碼的情況。
""" 第⼀⾏注釋 第⼆⾏注釋 第三⾏注釋 """
''' 注釋1 注釋2 注釋3 '''
程序中,數據都是臨時存儲在內存中,為了更快速的查找或使⽤這個數據,通常我們把這個數據在內存中存儲之後定義⼀個名稱,這個名稱就是變量。
定義變量:變量名=值
由數字、字⺟、下劃線組成
不能數字開頭
不能使⽤內置關鍵字
嚴格區分⼤⼩寫
bug是指程序中的錯誤。我們可以通過打斷點和Debug嘗試來查bug.
Debugger:顯示變量和變量的細節
Console:輸出內容
檢測數據類型的方法:type()
a = 1
print(type(a))# <class 'int'> --整型
b = 1.1
print(type(b))# <class 'float'> --浮點型
c = True
print(type(c))# <class 'bool'> --布爾型
d = '12345'
print(type(d))# <class 'str'> --字符串
e = [10, 20, 30]
print(type(e))# <class 'list'> --列表
f = (10, 20, 30)
print(type(f))# <class 'tuple'> --元組
h = {
10, 20, 30}
print(type(h))
# <class 'set'> --集合
g = {
'name':'TOM', 'age':20}
print(type(g))# <class 'dict'> --字典
轉換數據類型的函數:
# 1. float() --轉換成浮點型
num1 = 1
print(float(num1))
print(type(float(num1)))
# 2. str() --轉換成字符串類型
num2 = 10
print(type(str(num2)))
# 3. tuple() --將⼀個序列轉換成元組
list1 = [10, 20, 30]
print(tuple(list1))
print(type(tuple(list1)))
# 4. list() --將⼀個序列轉換成列表
t1 = (100, 200, 300)
print(list(t1))
print(type(list(t1)))
# 5. eval() --將字符串中的數據轉換成Python表達式原本類型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(str3)))
算術運算符:
賦值運算符
比較運算符
比較運算符
數字之間的邏輯運算
a = 0
b = 1
c = 2
# and運算符,只要有⼀個值為0,則結果為0,否則結果為最後⼀個⾮0數字
print(a and b)# 0
print(b and a) # 0
print(a and c) # 0
print(c and a)# 0
print(b and c)# 2
print(c and b) # 1
# or運算符,只有所有值為0結果才為0,否則結果為第⼀個非0數字
print(a or b)# 1
print(a or c)# 2
print(b or c)# 1
格式化輸出:
#我的名字是TOM
print('我的名字是%s'%name)
#我的學號是0001
print('我的學號是%4d'%student_id)
#我的體重是75.50公⽄
print('我的體重是%.2f公⽄'%weight)
#我的名字是TOM,今年18歲了
print('我的名字是%s,今年%d歲了'% (name, age))
print('我的名字是%s,今年%s歲了'% (name, age))
#%s也可以用於輸出整型,浮點型
#我的名字是TOM,明年19歲了
print('我的名字是%s,明年%d歲了'% (name, age+1))
#我的名字是TOM,明年19歲了
print(f'我的名字是{
name},明年{
age + 1}歲了')
# f'{表達式}是python3.6之後新增的格式化方法
轉義字符
\n:換⾏。
\t:制表符,⼀個tab鍵(4個空格)的距離。
print('輸出的內容',end="\n")
# 倆個print換行輸出
在Python中,print(),默認⾃帶end="\n”這個換⾏結束符,所以導致每兩個print直接會換⾏展示,⽤戶可以按需求更改結束符。
程序接收⽤戶輸⼊的數據的功能即是輸⼊。
input("提示信息")
當程序執⾏到input時,等待⽤戶輸⼊,輸⼊完成之後才繼續向下執⾏。
在Python中,input接收⽤戶輸⼊後,⼀般存儲到變量,⽅便使⽤。
在Python中,input會把接收到的任意⽤戶輸⼊的數據都當做字符串處理。
password=input('請輸入密碼:')
print(f'您輸入的密碼是{
password}');
if true:
print("執行語句1");
print("執行語句2");
#下⽅的代碼沒有縮進到if語句塊,所以和if條件⽆關
print('我是⽆論條件是否成⽴都要執⾏的代碼')
需求:⽤戶可以輸出⾃⼰的年齡,然後系統進⾏判斷是否成年,成年則輸出"您的年齡是’⽤戶輸⼊的年齡’,已經成年,可以上⽹"。
age = int(input('請輸⼊您的年齡:'))
if age>= 18:
print(f'您的年齡是{
age},已經成年,可以上⽹')
print('系統關閉')
if 條件:
條件成⽴執⾏的代碼1
條件成⽴執⾏的代碼2
else:
條件不成⽴執⾏的代碼1
條件不成⽴執⾏的代碼2
多重判斷
if 條件1:
條件1成⽴執⾏的代碼1
條件1成⽴執⾏的代碼2
elif條件2:
條件2成⽴執⾏的代碼1
條件2成⽴執⾏的代碼2
else:
以上條件都不成⽴執⾏執⾏的代碼
需求:
1.如果有錢,則可以上⻋
2.上⻋後,如果有空座,可以坐下上⻋後,如果沒有空座,則站著等空座位如果沒錢,不能上⻋
money = 1
seat = 0
if money == 1:
print('⼟豪,不差錢,順利上⻋')
if seat == 1:
print('有空座,可以坐下')
else:
print('沒有空座,站等')
else:
print('沒錢,不能上⻋,追著公交⻋跑')
三目運算符:
條件成⽴執⾏的表達式 if 條件 else 條件不成⽴執⾏的表達式
需求:石頭剪刀布游戲
import random
computer=random.randint(0,2)
print(computer)
player=int(input('您輸入的是0石頭1剪刀2布'))
if ((player == 0) and (computer == 1)) or ((player == 1) and (computer == 2) )or((player == 2) and (computer == 0)):
print('玩家獲勝')
elif player == computer:
print('平局')
else:
print('電腦獲勝')
while 條件:
條件成⽴重復執⾏的代碼1
條件成⽴重復執⾏的代碼2
需求1:計算1-100的累加和
i=1
result=0
while i<=100:
result+=i
i+=1
print(result)
需求2:計算1-100的偶數之和
i=0
result=0
while i<100:
i+=2
result+=i
print(result)
需求3:打印星號(上三角)
j=0
while j<=4:
i=0
while i<=j
print('*')
i+=1
print()
j+=1
需求4:九九乘法表
i=1
while i<=9:
j=1
while j<=i:
print(f'{
i}*{
j}={
i*j}',end='\t')
j+=1
print()
i+=1
while 條件:
條件成⽴重復執⾏的代碼
else:
循環正常結束之後要執⾏的代碼
i = 1
while i<= 5:
if i == 3:
print('這遍說的不真誠')
break
print('媳婦⼉,我錯了')
i += 1
else:
print('媳婦原諒我了,真開⼼,哈哈哈哈')
所謂else指的是循環正常結束之後要執⾏的代碼,即如果是break終⽌循環的情況,else下⽅縮進的代碼將不執⾏。
i = 1
while i<= 5:
if i == 3:
print('這遍說的不真誠')
continue
print('媳婦⼉,我錯了')
i += 1
else:
print('媳婦原諒我了,真開⼼,哈哈哈哈')
因為continu是退出當前⼀次循環,繼續下⼀次循環,所以該循環在continue控制下是可以正常結束的,當循環結束後,則執⾏else
縮進的代碼。
for 臨時變量 in 序列:
重復執⾏的代碼1
重復執⾏的代碼2
for 臨時變量 in 序列:
重復執⾏的代碼
else:
循環正常結束之後要執⾏的代碼
name1 = 'Tom'
name2 = "Rose"
name3='''i am 1'''
# 三引號形式的字符串⽀持換⾏。
# 創建字符串I'm Tom?
c = "I'm Tom"
d = 'I\'m Tom'
name = 'Tom'
print('我的名字是%s'%name)
print(f'我的名字是{
name}')
password = input('請輸⼊您的密碼:')
print(f'您輸⼊的密碼是{
password}')
序列[開始位置下標:結束位置下標:步⻓]
1.不包含結束位置下標對應的數據,
正負整數均可;(左閉右開)
2.步⻓是選取間隔,
正負整數均可,默認步⻓為1
name = "abcdefg"
print(name[2:5:1])# cde
print(name[2:5])# cde
print(name[:5])# abcde
print(name[1:])# bcdefg
print(name[:])# abcdefg
print(name[::2])# aceg
print(name[:-1])# abcdef,負1表示倒數第⼀個數據
print(name[-4:-1])# def(-1表示最後一個數據,依次向前類推)
print(name[::-1])# gfedcba 步長為負數,表示倒序選擇
print(name[-4:-1:-1])# 不能選出數據,-1到-4表示從左向右,但-1步長表示從右往左選取
字符串序列.find(⼦串,開始位置下標,結束位置下標)
mystr = "hello world and itcast and itheima and Python"
print(mystr.find('and'))
# 12
print(mystr.find('and', 15, 30))
# 23
print(mystr.find('ands'))
# -1
(2)index():檢測某個⼦串是否包含在這個字符串中,如果在返回這個⼦串開始的位置下標,否則報異常
(3)rfind():和find()功能相同,但查找⽅向為右側開始。
rindex():和index()功能相同,但查找⽅向為右側開始。
count():返回某個⼦串在字符串中出現的次數