一向挖、Python中的數(shù)據(jù)類型
計算機顧明思議就是可以做數(shù)學運算的機器,因此計算機理所當然的可以處理各種數(shù)據(jù),但是計算機能處理的遠遠不止數(shù)值,還有文本,圖形,音頻,視頻網(wǎng)頁等各種數(shù)據(jù), 不同數(shù)據(jù)需要定義不同的數(shù)據(jù)類型
Number【數(shù)字:整型int穴墅,浮點型[小數(shù)]float三娩,復數(shù)類型complex】
String【字符串】
Boolean【布爾類型】 True真(1), Flase假(0)
None【空值】
list【列表】 類似c語言的數(shù)組
tuple【元組】 不可改變的列表
dict【字典】
set【集合】(了解)
bytes【字節(jié)】
二蜘矢、常量和變量
1.常量
定義:在程序運行的過程中高镐,值永遠不會發(fā)生改變
print(2) print(2.3) print(3+5) print("hello") print(True)
2.變量
2.1. 概念
定義:程序在運行的過程中目养,值可以隨時發(fā)生改變
作用:存儲數(shù)據(jù),參與運算
2.2. 定義
定義格式:變量名 = 初始值
說明:
? 變量名: 對于每一個變量财异,需要給他定義一個名稱倘零,定義的規(guī)則就是標識符的規(guī)則
? =: 賦值運算符【主要是為了給變量進行賦值】
? 初始值:第一次給變量賦予的值,在程序運行的過程中戳寸,這個值可以隨時發(fā)生改變,同時確定了變量的數(shù)據(jù)類型
舉例:age = 10
? age是變量名【引用】呈驶,10是初始值Python中的變量的定義和數(shù)學中變量的定義完全一致
x = 3 y = 4 print(x * y) x = "abc" # print(x) # 【擴展】 # Python被稱為弱類型語言,動態(tài)改變變量的數(shù)據(jù)類型疫鹊,容錯性比較高 # Java被稱為強類型語言袖瞻,只要變量被定義,它的數(shù)據(jù)類型將不能發(fā)生任何的改變 # 在Java中定義變量: # int x = 3 # x = "hello" # 報錯
2.3. 變量的使用
代碼演示:
#1 #需求:定義一個變量拆吆,名字為age聋迎,類型為整型,初始值為18 age = 18 print(age) #需求:定義一個變量枣耀,名字為str霉晕,類型為string,初始值為hello str = "hello" #布爾型 b = True #2 #變量在程序運行的過程捞奕,值可以隨時發(fā)生改變 str = "abc" #3 #關于變量的命名 student_name = "zhangsan" studentName = "zhangsan" #4 #注意:變量必須先定義牺堰,然后再使用 #print(num) #NameError: name 'num' is not defined #5 #類似于變量的定義,將常量定義出來 print(10) print(10 + 4) print(10 * 8) #注意:命名規(guī)范颅围,遵循常量命名法:字母全部大寫 NUM1 = 10 print(NUM1) print(NUM1 + 4) print(NUM1 * 8) #NUM1 = 20 #6 #如果一個表達式需要被重復使用萌焰,每次都計算比較麻煩,可以先將表達式的值用一個新的變量保存起來 x = 3 y = 4 print(3 * 4) print(x * y) print(x * y) print(x * y) result = x * y print(result) print(result)
2.5.刪除變量
注意:當定義一個變量,然后刪除谷浅,相當于這個變量未被定義
代碼演示:
#定義變量 num = 66 print(num) #刪除變量 #del #變量被刪除之后則相當于這個變量未被定義 del num print(num)
2.6.關鍵字
關鍵字: 在Python中扒俯,已經(jīng)被賦予了特殊含義的英文單詞
import keyword print(keyword.kwlist)
python中的關鍵字共33個:
? False class finally is return None continue for lambda try
? True def from nonlocal while and del global not with
? as elif if or yield assert else import pass
? break except in raise
2.7.標識符
標識符: 在Python程序中自定義的一些英文單詞, 如:變量名,函數(shù)名
定義合法標識符的規(guī)則:
? a.只能由數(shù)字,字母一疯,下劃線組成撼玄,不可以是其他的特殊字符【%,&墩邀,*掌猛,空格等】
? b.開頭不能是數(shù)字
? c.不能是關鍵字
? d. 嚴格區(qū)分大小寫 例如: age和Age是兩個不同的標識符
定義標識符的規(guī)范:
? a. Python官方要求:全部用小寫字母,不同單詞之間使用下劃線分隔 stu_score
? 遵循駝峰命名法【不同的單詞之間使用首字母大寫的方式進行分隔】,小駝峰荔茬,大駝峰
? 例如:stuScore StuScore
? b.盡量做到見名知意
? 【注意:規(guī)則和規(guī)范的區(qū)別】
作用:給變量废膘,函數(shù)等命名,為了進行區(qū)分
練習:判斷下面標識符合法是否
? xiaoming 合法
? $abc 不合法 慕蔚,有特殊字符
? abc_hello 合法
? 1score 不合法丐黄,數(shù)字不能開頭
? score123 合法
擴展:
? 其他標識符的命名規(guī)則:
? 常量: 常量名所有字母大寫,由下劃線連接各個單詞如MAX_OVERFLOW孔飒,TOTAL
? 函數(shù)&方法: 函數(shù)名應該為小寫灌闺,可以用下劃線風格單詞以增加可讀性。如:my_function坏瞄,my_example_function桂对。
? 文件名: 全小寫,可使用下劃線
? 包: 應該是簡短的、小寫的名字鸠匀。如果下劃線可以改善可讀性可以加入
? 模塊: 與包相同
? 類: 總是使用首字母大寫單詞串蕉斜。如MyClass。內(nèi)部類可以使用額外的前導下劃線
? 全局變量: 對于from M import *導入語句缀棍,如果想阻止導入模塊內(nèi)的全局變量可以使用舊有的規(guī)范蛛勉,在全局變量上加一個前導的下劃線。
特定命名方式: 主要是指 __xxx__ 形式的系統(tǒng)保留字命名法睦柴。項目中也可以使用這種命名诽凌,它的意義在于這種形式的變量是只讀的,這種形式的類成員函數(shù)盡量不要重載坦敌。
2.8. 特點
a.值是隨時可以改變
b.使用變量必須在內(nèi)存中開辟空間
c.變量可以存儲可變數(shù)據(jù)
2.9.意義
計算機存在的意義就是為了解決生活中的一些數(shù)據(jù)侣诵,這些用變量存儲
三、輸入輸出
1.print輸出
作用:將一些特定的數(shù)據(jù)輸出到屏幕上【調試工具】
代碼演示:
#簡單用法:每次只輸出一個數(shù)據(jù)狱窘,任何類型都可以 print(10) print("hello") #可以通過一條print輸出多個數(shù)據(jù),使用逗號隔開杜顺,最終得到的結果將逗號識別成了空格 print(10,"hello") x = 3 y = 4 print("x + y = ",x + y)
2.input輸入
作用:可以將外部的值作為程序中變量的值使用【從控制臺獲取值】
代碼演示:
#注意:當程序執(zhí)行到input的時候,程序會停止在這個地方蘸炸,等待用戶的輸入躬络, # 當內(nèi)容輸入結束之后蕊蝗,按下enter克婶,此時輸入結束 #用戶輸入的值可以通過變量的形式保存起來 str = input("請輸入內(nèi)容:") print(str) name = input("請輸入姓名:") age = input("請輸入年齡:") print(name,age) #需求;根據(jù)控制臺輸入的年齡計算還能活多少年 death_age = 100 #注意:通過input獲取的數(shù)據(jù)全部都是字符串 age1 = input("請輸入現(xiàn)在的年齡:") print(death_age - age1) #字符串和整型之間的轉換 """ int:integer,整型, str:string,字符串 轉換 int() 將字符串轉換為整型 str() 將整型轉換為字符串 float() 將整型或者字符串轉換為浮點型【小數(shù)】 """ #修改上面的獲取結果的語句 print("還可以活",death_age - int(age1),"年") print("還可以活",str(death_age - int(age1)),"年") #練習:從控制臺輸入兩個數(shù)阱表,計算兩個數(shù)的和淹禾,并將結果輸出 num1 = int(input("請輸入第一個數(shù):")) num2 = int(input("請輸入第二個數(shù):")) print(num1 + num2) result = num1 + num2 print(result)
四馁菜、運算符和表達式
1.表達式
操作數(shù)和運算符組成
1 + 3
1 / 2
作用: 表達式可以求值,也可以給變量賦值
2.運算符
2.1. 算術運算符
+ - *【乘法】 /【除法】 %【求余铃岔,取耐舸】 **【求冪】 //【取整】
代碼演示:
num1 = 5 num2 = 3 print(num1 + num2) print(num1 - num2) print(num1 * num2) print(num1 / num2) #浮點型:1.6666666666666667 默認精度16位 print(num1 % num2) #2 print(num1 ** num2) #5的3次方 print(num1 // num2) #獲取浮點數(shù)的整數(shù)部分 #除了+和-之外,其他的算術運算符都是相同的優(yōu)先級 #出現(xiàn)優(yōu)先級,解決辦法使用括號 print(2 ** 5 * 3)
2.2. 賦值運算符
簡單賦值運算符:= 給一個變量進行賦值
復合賦值運算符:+= -= %= /= ....... 給一個變量進行賦值智嚷,同時給變量進行相應的運算
代碼演示:
#簡單 num1 = 10 #注意:在賦值運算符中卖丸,先計算等號右邊的表達式,然后將計算的結果賦值給等號左邊的變量 num2 = num1 + 10 print(num2) #復合 num3 = 10 num3 += 100 #等價于num3 = num3 + 100 print(num3)
2.3. 關系【條件盏道,比較】運算符
作用:比較大小稍浆,得到結果為布爾值【如果表達式成立,則返回True摇天,如果不成立,則返回False】
> < >= <= ==【恒等號】 != 【不等于】
使用場景:if語句恐仑,循環(huán)
代碼演示:
x = 3 y = 5 print(x > y) #False print(x < y) print(x == y) print(x != y) print(x >= y) #False print(x <= y) #True
2.4. 邏輯運算符
and : 與
or: 或
not:非
2.5. 成員運算符和身份運算符
成員運算符:
? in, not in
身份運算符:
? is, is not
2.6. 位運算符【擴展】
前提:將數(shù)字轉換為二進制使用
&【按位與】 |【按位或】 ^【按位異或】 ~【按位取反】 << 【左移】 >>【右移】
代碼演示:
print(6 & 3) print(6 | 3) print(6 ^ 3) print(~6) print(6 << 2) print(6 >> 2)
五泉坐、if語句
1.代碼結構
順序結構:代碼從上往下依次執(zhí)行
分支結構:根據(jù)不同的條件,執(zhí)行不同的語句
循環(huán)結構:根據(jù)指定的條件裳仆,重復執(zhí)行某段代碼
2.分支結構-if語句
2.1簡單if語句【單分支】
語法:
if 表達式:
? 執(zhí)行語句
說明;要么執(zhí)行腕让,要么不執(zhí)行,當表達式成立的之后歧斟,則執(zhí)行語句纯丸;如果表達式不成立,則直接跳過整個if語句繼續(xù)執(zhí)行后面的代碼
注意:表達式為真才執(zhí)行語句
? 假:0 0.0 False “” None【空值】
? 一般情況下静袖,表達式使用都是比較運算符
代碼演示:
#單分支 num1 = 50 num2 = 60 #需求:當num1 == num2,則給num1重新賦值為100 #在pYthon中觉鼻,通過縮進來區(qū)分代碼塊 if num1 != num2: num1 = 100 print(num1) #練習:從控制臺輸入一個數(shù),判斷這個數(shù)是否是偶數(shù) num = int(input()) if num % 2 == 0: print(num,"是一個偶數(shù)") print(num,"不是一個偶數(shù)")
2.2if-else語句【雙分支】
語法:
if 表達式:
? 執(zhí)行語句1
else:
? 執(zhí)行語句2
說明:如果表達式成立队橙,則執(zhí)行語句1坠陈;如果不成立,則執(zhí)行語句2
代碼演示:
#雙分支 # 從控制臺輸入一個數(shù)捐康,判斷這個數(shù)是否是偶數(shù) num = int(input()) if num % 2 == 0: print(num,"是一個偶數(shù)") else: print(num,"不是一個偶數(shù)") #練習:從控制臺輸入一個數(shù)字仇矾,根據(jù)數(shù)字打印年齡段 age = int(input()) if age >= 18: print("成年人") else: print("未成年人")
2.3if-elif-else語句【多分支】
語法:
if 表達式1:
? 執(zhí)行語句1
elif 表達式2:
? 執(zhí)行語句2
elif 表達式3:
? 執(zhí)行語句3
。解总。贮匕。。花枫。
else:
? 執(zhí)行語句n
說明:實現(xiàn)了多選一的操作刻盐,會根據(jù)不同的條件從上往下來進行匹配,如果匹配上了劳翰,則執(zhí)行對應的語句隙疚,然后直接結束整個if-elif語句,但是磕道,如果所有的條件都不成立的話供屉,則執(zhí)行else后面的語句
注意:不管if-elif-else有多少個分支,都只會執(zhí)行其中的一個分支
代碼演示:
#多分支 #需求:從控制臺輸入一個數(shù)字,根據(jù)數(shù)字打印年齡段 age = int(input()) if age < 0: print("輸入有誤") elif age <= 3: print("嬰兒") elif age <= 6: print("兒童") elif age <= 12: print("青少年") elif age <= 18: print("青年") else: print("hello")
#練習:根據(jù)控制臺輸入的成績伶丐,輸出對應的等級 """ 90以上:優(yōu)秀 80~90:良好 70~80:還行 70以下:加油吧悼做,少年 """ score = int(input("請輸入學生的成績:")) if score >= 90: print("優(yōu)秀") elif score >= 80: print("良好") elif score >= 70: print("還行") else: print("") #容易出現(xiàn)的問題:冒號 中文 空格
2.4三者之間的區(qū)別
代碼演示:
#三者之間的區(qū)別 n = 3 #多分支:多選一 if n > 1: print("a") elif n > 2: print("b") elif n > 3: print("c") else: print("d") #a #單分支:要么執(zhí)行,要么不執(zhí)行 if n > 1: print("a") #a if n > 2: print("b") #b #雙分支:實現(xiàn)二選一 if n > 3: print("c") else: print("d") #d
2.5嵌套if語句
語法:
if 表達式1:
? 執(zhí)行語句1
? if 表達式2:
? 執(zhí)行語句2
說明:if語句的嵌套哗魂,可以在單分支肛走,雙分支,多分支之間進行任意組合
代碼演示:
score = int(input("請輸入學生的成績:")) if score < 0 or score > 100: print("輸入有誤") else: if score >= 90: print("優(yōu)秀") elif score >= 80: print("良好") elif score >= 70: print("還行") else: print("") age = int(input("請輸入年齡:")) looks = input("請輸入您的相貌:") if age >= 18: if looks == "美女": print("要微信") else: print("略過")
注意:從語法角度來說录别,嵌套的層數(shù)沒有任何的限制朽色,但是,為了代碼的可讀性和可維護性组题,嵌套層數(shù)不要超過3層