1. 什么是局部變量?
定義在函數(shù)內(nèi)亭螟、在class
的方法內(nèi)的變量叫做局部變量碾褂。
2. 什么是全局變量?
在模塊內(nèi)、在所有函數(shù)外面暂殖、在class
外面价匠,這就是全局變量。
3. 局部變量和全局變量有什么區(qū)別呛每?(提示:兩者的定義踩窖、引用、修改)
局部變量只有在當(dāng)前的函數(shù)作用域內(nèi)晨横,才可以進(jìn)行調(diào)用洋腮;而全局變量可以在任意一個(gè)函數(shù)中進(jìn)行調(diào)用。局部變量通常用作數(shù)據(jù)臨時(shí)存儲(chǔ)手形,而全局變量可以長(zhǎng)期保持?jǐn)?shù)據(jù)(py文件運(yùn)行時(shí))啥供。
4. 如果全局變量和局部變量同名會(huì)發(fā)生什么效果?
在函數(shù)內(nèi)部使用變量時(shí),會(huì)遵循“就近原則”库糠,即:先找局部變量伙狐,如果找不到,再找全局變量,最后是系統(tǒng)內(nèi)置的鳞骤;在函數(shù)外部時(shí)窒百,即會(huì)調(diào)用全局變量黍判,如果找不到豫尽,再找系統(tǒng)內(nèi)置的。
5. python中可變類型數(shù)據(jù)有哪些顷帖?不可變類型數(shù)據(jù)有哪些?
可變:列表美旧、字典、集合
不可變:數(shù)值(整數(shù)贬墩、浮點(diǎn)數(shù))榴嗅、布爾、字符串陶舞、元祖
6. 什么是遞歸函數(shù)嗽测?遞歸函數(shù)有什么成立條件?
遞歸就是一個(gè)函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身。執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身肿孵,每調(diào)用一次就進(jìn)入新的一層唠粥。遞歸函數(shù)必須有結(jié)束條件。
7. 函數(shù)的文檔說(shuō)明有什么用停做?
函數(shù)的文檔說(shuō)明是給程序員看的晤愧,方便程序員快速了解這個(gè)函數(shù)的組成與作用。
8. 什么是函數(shù)的嵌套蛉腌,寫(xiě)一個(gè)簡(jiǎn)單的函數(shù)嵌套:調(diào)用test1官份,在test1調(diào)用test2,所有函數(shù)的開(kāi)始和結(jié)束位置都打印一行文本烙丛,驗(yàn)證調(diào)用執(zhí)行順序
def test1():
print("test1開(kāi)始調(diào)用")
print("test1結(jié)束調(diào)用")
def test2():
print("test2開(kāi)始調(diào)用")
test1()
print("test2結(jié)束調(diào)用")
test2()
# test2開(kāi)始調(diào)用
# test1開(kāi)始調(diào)用
# test1結(jié)束調(diào)用
# test2結(jié)束調(diào)用
定義test1舅巷、test2兩個(gè)函數(shù),調(diào)用test2河咽,在test2內(nèi)部調(diào)用test1钠右。
9. 分別定義一個(gè)字符串類型的全局變量、列表類型的全局變量库北。定義函數(shù)test1爬舰,在函數(shù)中分別使用,總結(jié)有什么區(qū)別寒瓦?
my_str = "hello"
my_list = ["hai", 23]
def test1():
print(my_str)
print(my_list)
test1()
# hello
# ['hai', 23]
可以在函數(shù)內(nèi)部使用全局變量情屹。
10. 分別定義一個(gè)字符串類型的全局變量、列表類型的全局變量杂腰。定義函數(shù)test2垃你,在函數(shù)中分別修改,總結(jié)有什么區(qū)別?
my_str = "hello"
my_list = ["hai", 23]
def test2():
my_str = "world"
my_list = ["hai", "world"]
test2()
print(my_str)
print(my_list)
# hello
# ['hai', 23]
在函數(shù)中無(wú)法直接修改全局變量惜颇。
11. 分別定義一個(gè)字符串類型的全局變量皆刺、列表類型的全局變量。定義函數(shù)test3凌摄,分別將全局變量作為參數(shù)傳遞給test3羡蛾,并在test3中進(jìn)行修改,總結(jié)有什么區(qū)別锨亏?
my_str = "hello"
my_list = ["hai", 23]
def test3(my_str, my_list):
my_str = "world"
my_list = ["hai", "world"]
test3(my_str, my_list)
print(my_str)
print(my_list)
# hello
# ['hai', 23]
將全局變量作為參數(shù)傳入痴怨,在函數(shù)中也無(wú)法直接修改全局變量。
12. 如何理解引用傳參器予,實(shí)際傳遞的是什么浪藻?
引用傳參傳遞的是一個(gè)變量在內(nèi)存中存儲(chǔ)的地址,實(shí)際傳遞的是地址乾翔。
13. 使用遞歸函數(shù)求n的階乘
# 階乘函數(shù)
def Fact(n):
if n == 1:
return 1
return n * Fact(n-1)
14. 如何理解文件?
文件就是你存放在電腦里的東西爱葵,包括文檔、圖片反浓、音樂(lè)萌丈、視頻等文件。
15. 為什么要用文件?
我們可以通過(guò)文件來(lái)存儲(chǔ)東西勾习。
16. 簡(jiǎn)述文件操作的流程?
打開(kāi)文件浓瞪,操作文件,關(guān)閉文件巧婶。
17. 如何打開(kāi)一個(gè)文件?
變量名 = open(文件名, 模式)
18. 有一個(gè)test.txt文件,以只讀的方式打開(kāi)此文件,用變量f接收文件打開(kāi)的返回值.
f = open("test.txt", "r")
19. 文件訪問(wèn)模式中r表示什么模式,r+表示什么模式?
r是以只讀方式打開(kāi)文件乾颁,r+是可讀寫(xiě)方式打開(kāi)。
20. 文件訪問(wèn)模式中r與r+有什么區(qū)別?
r+必須基于r的基礎(chǔ)上進(jìn)行操作艺栈,即:文件必須存在英岭。
21. 文件訪問(wèn)模式中w表示什么模式,w+表示什么模式?
w是只寫(xiě)方式打開(kāi)文件,w+是可讀可寫(xiě)方式打開(kāi)湿右。
22. 文件操作中要在文件中追加該如何操作?
使用a模式诅妹,對(duì)文件進(jìn)行追加。
23. 如何關(guān)閉一個(gè)文件?
變量名.close()
24. 將打開(kāi)的test.txt文件關(guān)閉,用變量f接收返回值.
f = open("test.txt", "r")
content = f.read()
f.close()
25. 什么情況下要用到復(fù)制毅人?
需要備份文件時(shí)吭狡,需要復(fù)制原文件。
26. 怎樣實(shí)現(xiàn)文件的復(fù)制丈莺?
將原文件的數(shù)據(jù)讀取出來(lái)划煮,并寫(xiě)入到新文件中。
27. 如何理解文件的定位缔俄?
文件定位就是獲取當(dāng)前讀寫(xiě)的位置弛秋。
在讀寫(xiě)的過(guò)程中器躏,如果想知道當(dāng)前的位置,可以使用tell()來(lái)獲取蟹略。
28. 如何在打開(kāi)的test.txt文件中寫(xiě)入數(shù)據(jù)?
使用w方式對(duì)打開(kāi)的test.txt文件登失,進(jìn)行操作,寫(xiě)入數(shù)據(jù)挖炬。
29. 請(qǐng)?jiān)趖est.txt文件中寫(xiě)入"wow,so beautiful!".
f = open("test.txt", mode="w")
f.write("wow,so beautiful!")
f.close()
30. 怎么將test.txt文件中的數(shù)據(jù)讀出來(lái)?
使用r方式對(duì)打開(kāi)的test.txt文件揽浙,進(jìn)行操作,讀取數(shù)據(jù)茅茂。
31. 讀函數(shù)(按字符)中是否可以有參數(shù)?參數(shù)是什么作用
可以捏萍,傳入的參數(shù)表示需要讀取多少字節(jié)的數(shù)據(jù)。
32. 讀函數(shù)(按行)有什么作用?
一次只能讀取一行數(shù)據(jù)空闲,可以用來(lái)控制讀取的數(shù)據(jù)。
33. 在Python中文件的重命名在哪個(gè)模塊中走敌?
在Python的os
模塊中碴倾。
34. 在Python中文件重命名是哪個(gè)函數(shù)?
rename(需要修改的文件的名稱,新的文件的名稱)
35. 在Python程序中運(yùn)用rename()函數(shù)之前需要做什么掉丽?
需要提前導(dǎo)入os
模塊跌榔。
36. 如果有一個(gè)test.txt文件,但是不想讓它存在了捶障,該怎么辦僧须?
可以使用os
模塊中remove()
完成對(duì)文件的刪除操作。
37. 如何操作才能讓test.txt文件刪除项炼?
remove(需要?jiǎng)h除的文件名)
38. remove()函數(shù)運(yùn)用的過(guò)程中需要注意什么担平?
Python標(biāo)準(zhǔn)庫(kù)os
中的remove()
函數(shù)不能刪除具有只讀屬性的文件。