S1 Python 基础
定義規(guī)范
聲明變量
name = "Alex Li"變量定義規(guī)則
定義方式
駝峰體
AgeOfOldboy = 56 NumberOfStudents = 80下劃線
age_of_oldboy = 56 number_of_students = 80你覺得哪種更清晰,哪種就是官方推薦的,我想你肯定會先第2種,第一種AgeOfOldboy咋一看以為是AngelaBaby
變量的修改
。。。。
定義變量不好的方式舉例
- 變量名為中文、拼音
- 變量名過長
- 變量名詞不達(dá)意
常量
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程中不會改變的量
在Python中沒有一個專門的語法代表常量,程序員約定俗成用變量名全部大寫代表常量
AGE_OF_OLDBOY = 56在c語言中有專門的常量定義語法,const int count = 60;一旦定義為常量,更改即會報錯
基本數(shù)據(jù)類型
什么是數(shù)據(jù)類型?
對常用的各種數(shù)據(jù)類型進(jìn)行了明確的劃分,你想讓計算機(jī)進(jìn)行數(shù)值運算,你就傳數(shù)字給它,你想讓他處理文字,就傳字符串類型給他。Python中常用的數(shù)據(jù)類型有多種,今天我們暫只講3種, 數(shù)字、字符串、布爾類型
數(shù)字
int(整型)
在32位機(jī)器上,整數(shù)的位數(shù)為32位,取值范圍為-2**31~2**31-1,即-2147483648~2147483647
在64位系統(tǒng)上,整數(shù)的位數(shù)為64位,取值范圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(長整型)
跟C語言不同,Python的長整數(shù)沒有指定位寬,即:Python沒有限制長整數(shù)數(shù)值的大小,但實際上由于機(jī)器內(nèi)存有限,我們使用的長整數(shù)數(shù)值不可能無限大。
注意,自從Python2.2起,如果整數(shù)發(fā)生溢出,Python會自動將整數(shù)數(shù)據(jù)轉(zhuǎn)換為長整數(shù),所以如今在長整數(shù)數(shù)據(jù)后面不加字母L也不會導(dǎo)致嚴(yán)重后果了。
注意:在Python3里不再有l(wèi)ong類型了,全都是int
>>> a= 2**64 >>> type(a) #type()是查看數(shù)據(jù)類型的方法 <type 'long'> >>> b = 2**60 >>> type(b) <type 'int'>除了int和long之外, 其實還有float浮點型, 復(fù)數(shù)型
字符串
在Python中,加了引號的字符都被認(rèn)為是字符串!
那單引號、雙引號、多引號有什么區(qū)別呢? 讓我大聲告訴你,單雙引號木有任何區(qū)別,只有下面這種情況 你需要考慮單雙的配合msg = "My name is Alex , I'm 22 years old!" 多引號什么作用呢?作用就是多行字符串必須用多引號msg = ''' 今天我想寫首小詩, 歌頌我的同桌, 你看他那烏黑的短發(fā), 好像一只炸毛雞。 '''print(msg) View Code字符串拼接
數(shù)字可以進(jìn)行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進(jìn)行"相加"和"相乘"運算。>>> name 'Alex Li' >>> age '22' >>> >>> name + age #相加其實就是簡單拼接 'Alex Li22' >>> >>> name * 10 #相乘其實就是復(fù)制自己多少次,再拼接在一起 'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li' 注意,字符串的拼接只能是雙方都是字符串,不能跟數(shù)字或其它類型拼接>>> type(name),type(age2) (<type 'str'>, <type 'int'>) >>> >>> name 'Alex Li' >>> age2 22 >>> name + age2 Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects #錯誤提示數(shù)字 和 字符 不能拼接 View Code布爾型
布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷
但其實你們并不明白對么? let me explain, 我現(xiàn)在有2個值 , a=3, b=5 , 我說a>b你說成立么? 我們當(dāng)然知道不成立,但問題是計算機(jī)怎么去描述這成不成立呢?或者說a< b是成立,計算機(jī)怎么描述這是成立呢?沒錯,答案就是,用布爾類型>>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True 計算機(jī)為什么要描述這種條件呢?因為接下來就可以根據(jù)條件結(jié)果來干不同的事情啦呀!比如if a > b print(a is bigger than b )else print(a is smaller than b ) 上面是偽代碼,但是不是意味著, 計算機(jī)就可以根據(jù)判斷結(jié)果不同,來執(zhí)行不同的動作啦? View Code?格式化輸出
現(xiàn)有一練習(xí)需求,問用戶的姓名、年齡、工作、愛好 ,然后打印成以下格式------------ info of Alex Li ----------- Name : Alex Li Age : 22 job : Teacher Hobbie: girl ------------- end ----------------- 你怎么實現(xiàn)呢?你會發(fā)現(xiàn),用字符拼接的方式還難實現(xiàn)這種格式的輸出,所以一起來學(xué)一下新姿勢只需要把要打印的格式先準(zhǔn)備好, 由于里面的 一些信息是需要用戶輸入的,你沒辦法預(yù)設(shè)知道,因此可以先放置個占位符,再把字符串里的占位符與外部的變量做個映射關(guān)系就好啦name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:")info = ''' ------------ info of %s ----------- #這里的每個%s就是一個占位符,本行的代表 后面拓號里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 這行的 % 號就是 把前面的字符串 與拓號 后面的 變量 關(guān)聯(lián)起來 print(info) %s就是代表字符串占位符,除此之外,還有%d,是數(shù)字占位符, 如果把上面的age后面的換成%d,就代表你必須只能輸入數(shù)字啦age : %d 我們運行一下,但是發(fā)現(xiàn)出錯了。說%d需要一個數(shù)字,而不是str, what? 我們明明輸入的是數(shù)字呀,22,22呀。不用擔(dān)心 ,不要相信你的眼睛我,們調(diào)試一下,看看輸入的到底是不是數(shù)字呢?怎么看呢?查看數(shù)據(jù)類型的方法是什么來著?type()name = input("Name:") age = input("Age:") print(type(age)) 執(zhí)行輸出是Name:Alex Age:22 <class 'str'> #怎么會是str Job:IT .... 讓我大聲告訴你,input接收的所有輸入默認(rèn)都是字符串格式!要想程序不出錯,那怎么辦呢?簡單,你可以把str轉(zhuǎn)成intage = int( input("Age:") ) print(type(age)) 肯定沒問題了。相反,能不能把數(shù)字轉(zhuǎn)成字符串呢?必然可以,str( yourStr ) View Code?%s ,%d 占位符
input 接受輸入的都是字符串str
基本運算符
運算符
計算機(jī)可以進(jìn)行的運算有很多種,可不只加減乘除這么簡單,運算按種類可分為算數(shù)運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天我們暫只學(xué)習(xí)算數(shù)運算、比較運算、邏輯運算、賦值運算
算數(shù)運算
以下假設(shè)變量:a=10,b=20
比較運算
以下假設(shè)變量:a=10,b=20
賦值運算
以下假設(shè)變量:a=10,b=20
邏輯運算
?練習(xí)答案
1.簡述編譯型與解釋型語言的區(qū)別,且分別列出你知道的哪些語言屬于編譯型,哪些屬于解釋型.答:編譯型語言:使用專門的編譯器,針對特定的平臺,將高級語言源代碼一次性的編譯成可被該平臺硬件執(zhí)行的機(jī)器碼,并包裝成該平臺所能識別的可執(zhí)行性程序的格式。特點:在編譯型語言寫的程序執(zhí)行之前,需要一個專門的編譯過程,把源代碼編譯成機(jī)器語言的文件.執(zhí)行方式:源代碼 ———> 編譯(一次編譯) ———>目標(biāo)代碼———>執(zhí)行(多次執(zhí)行)———>輸出解釋型語言:使用專門的解釋器對源程序逐行解釋成特定平臺的機(jī)器碼并立即執(zhí)行。特點:解釋型語言不需要事先編譯,其直接將源代碼解釋成機(jī)器碼并立即執(zhí)行,所以只要某一平臺提供了相應(yīng)的解釋器即可運行該程序。執(zhí)行方式:源代碼 ———> 解釋器(每次執(zhí)行都需要解釋)———>輸出 編譯型: C c++, c#解釋型: python PHP ruby, java 執(zhí)行 Python 腳本的兩種方式是什么答:1、./run.py.shell直接調(diào)用python腳本 2、python run.py 調(diào)用python 解釋器來調(diào)用python腳本 Pyhton 單行注釋和多行注釋分別用什么?答:1, 單行注釋使用 # 號2, 多行注釋使用 “”“”“” ‘’‘’‘’ 布爾值分別有什么?答:布爾值分別有:True 和False布爾值為False的有:[] () {} 0 False "" 等 聲明變量注意事項有那些?答案:模塊名,包名 :小寫字母, 單詞之間用戶_分割。類名:首字母大寫。全局變量: 大寫字母, 單詞之間用戶_分割。普通變量: 小寫字母, 單詞之間用戶_分割。函數(shù): 小寫字母, 單詞之間用戶_分割。實例變量: 以_開頭,其他和普通變量一樣 。私有實例變量(外部訪問會報錯): 以__開頭(2個下劃線),其他和普通變量一樣 。專有變量: __開頭,__結(jié)尾,一般為python的自有變量(不要以這種變量命名)。 如何查看變量在內(nèi)存中的地址?id 寫代碼實現(xiàn)用戶輸入用戶名和密碼,當(dāng)用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗! 實現(xiàn)用戶輸入用戶名和密碼,當(dāng)用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重復(fù)輸入三次 實現(xiàn)用戶輸入用戶名和密碼,當(dāng)用戶名為 seven 或 alex 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重復(fù)輸入三次username = ['seven','Alex'] password = '123' count = 0 while count < 3:username = input('用戶名:')password = input('密碼:')if username in username and password == password:print('登陸成功!')breakelse:print('登陸失敗!')count += 1 寫代碼a. 使用while循環(huán)實現(xiàn)輸出2-3+4-5+6...+100 的和``` 答: i = 2 count = 0 while i <= 100:if i % 2 == 0:count += ielse:count -= ii += 1 print(count) ``` b. 使用 while 循環(huán)實現(xiàn)輸出 1,2,3,4,5, 7,8,9, 11,12``` 答: n1 = True n2 = 1 while n1:if n2 == 12:print(n2)breakif n2 == 6 or n2 == 10:n2 += 1continueprint(n2)n2 += 1``` c. 使用while 循環(huán)輸出100-50,從大到小,如100,99,98...,到50時再從0循環(huán)輸出到50,然后結(jié)束``` count =100 while count > 50:print(count)count -=1if count==50:count=1while count<=50:print(count)count+=1break ``` d. 使用 while 循環(huán)實現(xiàn)輸出 1-100 內(nèi)的所有奇數(shù)``` count =0 while count <=100:if count %2!=0:print(count)count +=1 ``` e. 使用 while 循環(huán)實現(xiàn)輸出 1-100 內(nèi)的所有偶數(shù)``` count =0 while count <=100:if count %2==0:print(count)count +=1 ``` 現(xiàn)有如下兩個變量,請簡述 n1 和 n2 是什么關(guān)系?n1 = 123456n2 = n1 制作趣味模板程序(編程題) 需求:等待用戶輸入名字、地點、愛好,根據(jù)用戶的名字和愛好進(jìn)行任意顯示 如:敬愛可愛的xxx,最喜歡在xxx地方干xxx答案:name = input("請輸入姓名:")address = input("請輸入地點:")hobby = input("請輸入愛好:")print("敬愛可愛的 %s, 最喜歡在%s地方干%s" % (name, address, hobby)) 輸入一年份,判斷該年份是否是閏年并輸出結(jié)果。(編程題) 注:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。答案:def get_year():year = int(input("請輸入年份:"))if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:print("%s 年是閏年" % year)else:print("%s 年不是閏年" % year)get_year() 假設(shè)一年期定期利率為3.25%,計算一下需要過多少年,一萬元的一年定期存款連本帶息能翻番?(編程題)money = 10000rate = 0.0325years = 0while money <= 20000:years += 1money = money*(1+rate)print(str(years)) 一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經(jīng)過多少米?第10次反彈多高?count = 0height = 100meter = 0while count < 10:meter += height #下落height /= 2meter += height #反彈count +=1print(meter,height) View Code總結(jié)
以上是生活随笔為你收集整理的S1 Python 基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: S1.2 Python开发规范指南
- 下一篇: python的6种基本数据类型--集合