第一章總結(jié)
一什黑、簡(jiǎn)述編譯型與解釋型語(yǔ)言的區(qū)別码荔,且分別列出你知道的哪些語(yǔ)言屬于編譯型,哪些屬于解釋型
編譯器是把源程序的每一條語(yǔ)句都編譯成機(jī)器語(yǔ)言,并保存成二進(jìn)制文件,這樣運(yùn)行時(shí)計(jì)算機(jī)可以直接以機(jī)器語(yǔ)言來(lái)運(yùn)行此程序,速度很快;
- 如C C++ Delphi 等語(yǔ)言是編譯型語(yǔ)言
而解釋器則是只在執(zhí)行程序時(shí),才一條一條的解釋成機(jī)器語(yǔ)言給計(jì)算機(jī)來(lái)執(zhí)行,所以運(yùn)行速度是不如編譯后的程序運(yùn)行的快的. ----跨平臺(tái)。
- 如Python Java PHP Ruby等語(yǔ)言是解釋型語(yǔ)言
高級(jí)語(yǔ)言所編制的程序不能被計(jì)算機(jī)所知?jiǎng)e,必須講過(guò)轉(zhuǎn)換才能被執(zhí)行孽锥,按照轉(zhuǎn)換方式,可以將其分為兩類细层,一類是編譯類,一類是解釋類
編譯類:就是在應(yīng)用源碼程序執(zhí)行之前唬涧,就將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言)疫赎,因此其目標(biāo)程序可以脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行。使用比較方便碎节,效率也高捧搞,但是應(yīng)用程序一旦需要修改,必須先修改源代碼狮荔,再重新編譯生成新的目標(biāo)(*.obj 胎撇,也就是OBJ文件)才能執(zhí)行,只有目標(biāo)文件而沒(méi)有源代碼殖氏,修改很不方便晚树。
特點(diǎn):編譯后程序運(yùn)行時(shí)不需要重新翻譯,直接使用編譯的結(jié)果就行了雅采。程序執(zhí)行效率高爵憎,依賴編譯器,跨平臺(tái)性比較差婚瓜,如C,C++,Delphi等
優(yōu)點(diǎn):1宝鼓,執(zhí)行程序時(shí)候,不需要源代碼巴刻,不依賴語(yǔ)言環(huán)境愚铡,因?yàn)閳?zhí)行的是機(jī)器源文件。
2胡陪,執(zhí)行速度快沥寥,因?yàn)槌绦虼a已經(jīng)翻譯成計(jì)算機(jī)可以理解的機(jī)器語(yǔ)言碍舍。
缺點(diǎn):1,每次修改了源代碼营曼,需要重新編譯乒验,生成機(jī)器編碼文件
2,跨平臺(tái)性不好蒂阱,不同操作系統(tǒng)锻全,調(diào)用底層的機(jī)器指令不同,需要為不同的平臺(tái)生成不同的機(jī)器碼文件录煤。
解釋類:執(zhí)行方式類似于我們生活中的“同聲翻譯”鳄厌,應(yīng)用程序源代碼一邊由相應(yīng)語(yǔ)言的解釋器“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),一邊執(zhí)行妈踊,一邊翻譯了嚎,因此效率比較低。
特點(diǎn):效率低廊营,不能生成獨(dú)立的可執(zhí)行文件歪泳,應(yīng)用程序不能脫離其解釋器,但是這種方式比較靈活露筒,可以動(dòng)態(tài)的調(diào)整呐伞,修改應(yīng)用程序。如Python,Java,PHP,Ruby等語(yǔ)言慎式。
優(yōu)點(diǎn):1伶氢,用戶調(diào)用解釋器,執(zhí)行源碼文件瘪吏,而且可以隨時(shí)修改癣防,立即見(jiàn)效,改完源代碼掌眠,直接運(yùn)行看結(jié)果
2蕾盯,解釋器把源碼文件一邊解釋成機(jī)器指令,一邊交給CPU執(zhí)行蓝丙,天生跨平臺(tái)刑枝,因?yàn)榻忉屍饕呀?jīng)做好了對(duì)不同平臺(tái)的交互處理,用戶寫的源代碼不需要考慮平臺(tái)差異性迅腔。
缺點(diǎn):1装畅,代碼是明文
2,運(yùn)行效率低沧烈,所有的代碼是需要解釋器邊解釋邊執(zhí)行掠兄,速度比編譯型慢很多。
執(zhí)行python腳本的兩種方式是什么
- ./run.py.shell直接調(diào)用python腳本
- python run.py 調(diào)用python 解釋器來(lái)調(diào)用python腳本
聲明變量注意事項(xiàng)是什么?
- 模塊名蚂夕,包名 :小寫字母迅诬, 單詞之間用戶_分割。
- 類名:首字母大寫婿牍。
- 全局變量: 大寫字母侈贷, 單詞之間用戶_分割。
- 普通變量: 小寫字母等脂, 單詞之間用戶_分割俏蛮。
- 函數(shù): 小寫字母, 單詞之間用戶_分割上遥。
- 實(shí)例變量: 以_開(kāi)頭搏屑,其他和普通變量一樣 。
- 私有實(shí)例變量(外部訪問(wèn)會(huì)報(bào)錯(cuò)): 以__開(kāi)頭(2個(gè)下劃線)粉楚,其他和普通變量一樣 。
- 專有變量: 開(kāi)頭模软,結(jié)尾伟骨,一般為python的自有變量(不要以這種變量命名)。
變量定義規(guī)則:
1燃异,變量名只能是字母底靠,數(shù)字或者下劃線的任意組合
2,變量名的第一個(gè)字符不能是數(shù)字
3特铝,關(guān)鍵字不能生命問(wèn)變量名
注意事項(xiàng):
1,變量名不能過(guò)長(zhǎng)
2,變量名詞不達(dá)意思
3壹瘟,變量名為中文鲫剿,拼音
如何查看變量在內(nèi)存中的地址?
-
id()
print(id.doc)
Return the identity of an object.
This is guaranteed to be unique among simultaneously existing objects.
(CPython uses the object‘s memory address.)
寫代碼
實(shí)現(xiàn)用戶輸入用戶名稻轨,當(dāng)用戶名為james灵莲,且密碼是123456,顯示登陸成功殴俱,否則登陸失敗政冻。
username = "seven"
password = "123"
_username = input("請(qǐng)輸入用戶名:")
_password = input("請(qǐng)輸入密碼:")
if _username == username and _password == password:
print("恭喜登陸成功.....")
else:
print("登錄失敗,用戶名或密碼錯(cuò)誤....")
實(shí)現(xiàn)用戶輸入用戶名,當(dāng)用戶名為james线欲,且密碼是123456明场,顯示登陸成功,否則登陸失敗李丰,失敗次數(shù)允許重復(fù)三次
username = "seven"
password = "123"
count = 0
while count < 3:
_username = input("用戶名:")
_password = input("密碼:")
if _username == username and _password == password:
print("歡迎", username, "登陸.....")
break
else:
print("用戶名或密碼錯(cuò)誤....")
count += 1
print("您還有", 3 - count, "次機(jī)會(huì)重新登陸")
else:
print("登陸失敗")
實(shí)現(xiàn)用戶輸入用戶名和密碼,當(dāng)用戶名位sevev或alex且密碼為123時(shí),顯示登陸成功,否則登錄失敗,失敗時(shí)允許重復(fù)輸入三次.
username = "seven"
username1 = "alex"
password = '123'
count = 0
while count < 3:
_username = input("username:")
_password = input("password:")
if _username == username or _username == username1:
if _password == password:
print("Welcome", _username, "login.....")
break
else:
print("wrong password....please try again.")
count += 1
print("you have", 3 - count, "times to try.")
continue
else:
print("Wrong username...please try again")
count += 1
print("you have", 3 - count, "times to try.")
continue
else:
print("you tried too many times...")
使用while循環(huán)實(shí)現(xiàn)輸出2-3+4-5+6......+100的和
count = 2
count1 = 0
while count < 101:
if count % 2 == 0:
count1 += count
else:
count1 -= count
count += 1
else:
print(count1)
使用while循環(huán)實(shí)現(xiàn)輸出1,2,3,4,5,7,8,9,11,12
count = 1
while count < 13:
if count == 6 or count == 10:
pass
else:
print(count)
count += 1
使用while循環(huán)輸出100-50,從大到小,如100,99,98....,到50時(shí)再?gòu)?循環(huán)輸出到50,然后結(jié)束
count = 101
while True:
if count > 50:
count -= 1
print(count)
else:
print(50-count)
count -= 1
if count < 0:
break
使用while循環(huán)實(shí)現(xiàn)輸出1-100內(nèi)的所有奇數(shù)
count = 1
# while count < 100:
# print(count)
# count += 2
while True:
if count % 2 == 1:
print(count)
count += 1
if count == 100:
break
使用while 循環(huán)實(shí)現(xiàn)輸出1-100內(nèi)的所有偶數(shù)
# count = 2
# while count <= 100:
# print(count)
# count += 2
count = 1
while count <= 100:
if count % 2 == 0:
print(count)
count += 1
現(xiàn)有如下兩個(gè)變量苦锨,請(qǐng)簡(jiǎn)述n1和n2是什么關(guān)系?
n1 = 123456
n2 = n1
將123456賦值給n1,然后將n2指向n1存儲(chǔ)內(nèi)容的地址舟舒,n2的值和n1的值相同
制作趣味模板程序(編程題)
需求:等待用戶輸入名字拉庶、地點(diǎn)、愛(ài)好秃励,根據(jù)用戶的名字和愛(ài)好進(jìn)行任意顯示
如:敬愛(ài)可愛(ài)的xxx氏仗,最喜歡在xxx地方干xxx。
輸入一年分夺鲜,判斷該年份是否是閏年并輸出結(jié)果皆尔。(編程題)
注:凡符合下面兩個(gè)條件之一的年份是閏年。
1谣旁、能被4整除但不能被100整除
2床佳、能被400整除