用戶與程序交互
在python3中
input:用戶輸入任何值,都存成字符串類型
#在python2中
input:用戶輸入什麽類型,就存成什麽類型
raw_input:等於python3的input
代碼註釋分單行和多行註釋, 單行註釋用#
,多行註釋可以用三對雙引號""" """
代碼註釋的原則:
1. 不用全部加註釋,只需要在自己覺得重要或不好理解的部分加註釋即可 #2. 註釋可以用中文或英文,但不要用拼音
九 基本數據類型
什麽是數據?為何要有多種類型的數據?
數據即變量的值,如age=18,18則是我們保存的數據。
變量的是用來反映/保持狀態以及狀態變化的,毫無疑問針對不同的狀態就應該用不同類型的數據去標識
int整型 定義:age=10 #age=int(10) 用於標識:年齡,等級,身份證號,qq號,個數 float浮點型 定義:salary=3.1 #salary=float(3.1) 用於標識:工資,身高,體重,
字符串
在python中,加了引號的字符就是字符串類型,python並沒有字符類型。
定義:name=‘egon‘ #name=str(‘egon‘)
用於標識:描述性的內容,如姓名,性別,國籍,種族
那單引號、雙引號、多引號有什麽區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種情況 你需要考慮單雙的配合
數字可以進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。 >>> name=‘egon‘ >>> age=‘18‘ >>> name+age #相加其實就是簡單拼接 ‘egon18‘ >>> name*5 ‘egonegonegonegonegon‘ 註意1:字符串相加的效率不高 字符串1+字符串3,並不會在字符串1的基礎上加字符串2,而是申請一個全新的內存空間存入字符串1和字符串3,相當字符串1與字符串3的空間被復制了一次, 註意2:只能字符串加字符串,不能字符串加其他類型
數字可以進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。 >>> name=‘egon‘ >>> age=‘18‘ >>> name+age #相加其實就是簡單拼接 ‘egon18‘ >>> name*5 ‘egonegonegonegonegon‘ 註意1:字符串相加的效率不高 字符串1+字符串3,並不會在字符串1的基礎上加字符串2,而是申請一個全新的內存空間存入字符串1和字符串3,相當字符串1與字符串3的空間被復制了一次, 註意2:只能字符串加字符串,不能字符串加其他類型
數字可以進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。 >>> name=‘egon‘ >>> age=‘18‘ >>> name+age #相加其實就是簡單拼接 ‘egon18‘ >>> name*5 ‘egonegonegonegonegon‘ 註意1:字符串相加的效率不高 字符串1+字符串3,並不會在字符串1的基礎上加字符串2,而是申請一個全新的內存空間存入字符串1和字符串3,相當字符串1與字符串3的空間被復制了一次, 註意2:只能字符串加字符串,不能字符串加其他類型列表 在[]內用逗號分隔,可以存放n個任意類型的值
定義:students=[‘egon‘,‘alex‘,‘wupeiqi‘,] #students=list([‘egon‘,‘alex‘,‘wupeiqi‘,])
用於標識:存儲多個值的情況,比如一個人有多個愛好 字典
為何還要用字典? 存放一個人的信息:姓名,性別,年齡,很明顯是多個值,既然是存多個值,我們完全可以基於剛剛學習的列表去存放,如下 >>> info=[‘egon‘,‘male‘,18] 定義列表的目的不單單是為了存,還要考慮取值,如果我想取出這個人的年齡,可以用 >>> info[2] 18 但這是基於我們已經知道在第3個位置存放的是年齡的前提下,我們才知道索引2對應的是年齡 即: #name, sex, age info=[‘egon‘,‘male‘,18] 而這完全只是一種假設,並沒有真正意義上規定第三個位置存放的是年齡,於是我們需要尋求一種,即可以存放多個任意類型的值,又可以硬性規定值的映射關系的類型,比如key=value,這就用到了字典在{}內用逗號分隔,可以存放多個key:value的值,value可以是任意類型
定義:info={‘name‘:‘egon‘,‘age‘:18,‘sex‘:18} #info=dict({‘name‘:‘egon‘,‘age‘:18,‘sex‘:18})
用於標識:存儲多個值的情況,每個值都有唯一一個對應的key,可以更為方便高效地取值 info={ ‘name‘:‘egon‘, ‘hobbies‘:[‘play‘,‘sleep‘], ‘company_info‘:{ ‘name‘:‘Oldboy‘, ‘type‘:‘education‘, ‘emp_num‘:40, } } print(info[‘company_info‘][‘name‘]) #取公司名
students=[ {‘name‘:‘alex‘,‘age‘:38,‘hobbies‘:[‘play‘,‘sleep‘]}, {‘name‘:‘egon‘,‘age‘:18,‘hobbies‘:[‘read‘,‘sleep‘]}, {‘name‘:‘wupeiqi‘,‘age‘:58,‘hobbies‘:[‘music‘,‘read‘,‘sleep‘]}, ] print(students[1][‘hobbies‘][1]) #取第二個學生的第二個愛好 布爾
布爾值,一個True一個False計算機俗稱電腦,即我們編寫程序讓計算機運行時,應該是讓計算機無限接近人腦,或者說人腦能幹什麽,計算機就應該能幹什麽,人腦的主要作用是數據運行與邏輯運算,此處的布爾類型就模擬人的邏輯運行,即判斷一個條件成立時,用True標識,不成立則用False標識 >>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True 接下來就可以根據條件結果來幹不同的事情了: if a > b print(a is bigger than b ) else print(a is smaller than b ) 上面是偽代碼,但意味著, 計算機已經可以像人腦一樣根據判斷結果不同,來執行不同的動作。
布爾類型的重點知識!!!
所有數據類型都自帶布爾值
1、None,0,空(空字符串,空列表,空字典等)三種情況下布爾值為False 2、其余均為真
重點:
1.可變類型:在id不變的情況下,value可以變,則稱為可變類型,如列表,字典
2. 不可變類型:value一旦改變,id也改變,則稱為不可變類型(id變,意味著創建了新的內存空間)
十 格式化輸出
程序中經常會有這樣場景:要求用戶輸入信息,然後打印成固定的格式
比如要求用戶輸入用戶名和年齡,然後打印如下格式:
My name is xxx,my age is xxx.
很明顯,用逗號進行字符串拼接,只能把用戶輸入的名字和年齡放到末尾,無法放到指定的xxx位置,而且數字也必須經過str(數字)的轉換才能與字符串進行拼接。
這就用到了占位符,如:%s、%d
%s字符串占位符:可以接收字符串,也可接收數字
print(‘My name is %s,my age is %s‘ %(‘egon‘,18))
#%d數字占位符:只能接收數字
print(‘My name is %s,my age is %d‘ %(‘egon‘,18))
print(‘My name is %s,my age is %d‘ %(‘egon‘,‘18‘)) #報錯
接收用戶輸入,打印成指定格式
name=input(‘your name: ‘)
age=input(‘your age: ‘) #用戶輸入18,會存成字符串18,無法傳給%d
print(‘My name is %s,my age is %s‘ %(name,age))
#註意:
#print(‘My name is %s,my age is %d‘ %(name,age)) #age為字符串類型,無法傳給%d,所以會報錯
練習:用戶輸入姓名、年齡、工作、愛好 ,然後打印成以下格式 ------------ info of Egon ----------- Name : Egon Age : 22 Sex : male Job : Teacher ------------- end -----------------
十一 基本運算符
計算機可以進行的運算有很多種,可不只加減乘除這麽簡單,運算按種類可分為算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天我們暫只學習算數運算、比較運算、邏輯運算、賦值運算
算數運算
以下假設變量:a=10,b=20
比較運算
以下假設變量:a=10,b=20
賦值運算
以下假設變量:a=10,b=20
邏輯運算
身份運算
is比較的是id #而==比較的是值
用戶與程序交互