1. 程式人生 > >用戶與程序交互

用戶與程序交互

理解 定義 存儲 不用 字符串類型 編寫 print 相加 inf

在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 #而==比較的是值



用戶與程序交互