python練習

[TOC]

認識python

  • python是編譯型語言還是解釋性語言,兩種類型的語言的程序有什么不同?
    解釋性語言,編譯型語言如C或C++需要其他編譯器和工具轉(zhuǎn)換成二進制語音在計算機中執(zhí)行,Python這樣的解釋型語言自帶編譯器直接運行即可
  • python相對與其他語言有什么優(yōu)點和缺點?
    簡單,開源,豐富的第三方庫
  • Python應(yīng)用場景有哪些
    web開發(fā),科學(xué)計算,游戲,軟件開發(fā)
  • 什么是python的交互模式,如何進入python交互模式
    CMD運行python程序進入交互模式
  • 在linux系統(tǒng)上,可以通過哪些方式編寫出一個python程序
    文件后綴名改為.py
  • 在終端中,如何運行一個.py文件,有幾種方法,分別怎么操作
    python test.py

python基礎(chǔ)知識:注釋、變量、變量類型、標示符、關(guān)鍵字

  • 你認為注釋是用來做什么的
    對代碼的用意原理進行解釋說明,避免再次閱讀代碼是不能理解
  • 在python中,注釋分幾類?分別如何定義?
    兩種,一種是單行注釋,“# ”,一種是多行注釋“‘ ’”
  • 請說出你對變量的理解,變量的作用是什么
    變量是數(shù)據(jù)的容器,幫助我們表示抽象的規(guī)律,避免重復(fù)性質(zhì)的工作
  • 請說出你對變量類型的理解
    Python不需要指定變量的類型,所以Python的變量類型其實是只里面存儲的數(shù)據(jù)的數(shù)據(jù)類型,分為數(shù)字型和非數(shù)字型,數(shù)字型包括整數(shù)、浮點型、布爾型、復(fù)合型(一般不用),非數(shù)字型包括字符串、列表、元組、字典
  • 請說出你對標示符的理解
    標示符就是程序員定義的 變量名、函數(shù)名等命名對象
  • 常見的標示符的命名規(guī)則有哪些
    只能使用英文、數(shù)字、下劃線的組合,不能用數(shù)據(jù)開頭,標識符不能與關(guān)鍵字相同
  • 如何在程序中寫一個注釋
    ‘# ’號開頭后面寫注釋“‘ ’”中間寫注釋
  • 變量的命名應(yīng)當符合什么規(guī)則,通常需要注意那幾個點
    只能使用英文、數(shù)字、下劃線的組合,不能用數(shù)據(jù)開頭,標識符不能與關(guān)鍵字相同
  • 請定義一個變量str1并賦值一個字符串"hello",再定義一個變量str2并賦值一個字符串"python",那么str1 + str2 的值是多少
str1 = 'hello'
str2 = 'python'
print(str1+str2)
#hellopython
  • 請寫出你所知道的python的數(shù)據(jù)類型
    int float str bool
  • 進入python3交互模式,定義任意個變量,使用并查看其類型
a = 1
print(type(a))
  • 說出下面第一行注釋的作用
#!/usr/bin/python
# coding=utf-8
# 第一個注釋
print "Hello, Python!"
# s 是變量 
s = 10
print(s)

指定python運行目錄

  • 請分別使用大駝峰和小駝峰命名法定義兩個變量,并為其賦值
    MyName = 'LiuBin'
    myName = 'liuBin'
  • 布爾類型的變量有哪些值
    False True
  • 什么是Python中的關(guān)鍵字?關(guān)鍵字能作為變量名嗎?
    關(guān)鍵字是python已經(jīng)設(shè)置好的標識符,不能作為變量名
  • 請指出下列變量的命名哪些是不規(guī)范的:
A、test     B、python     C、2name     D、num2          E、if
F、!hello    G、print     H、itcast     I、omg         J、abc-def
K、temp     L、else         M、TEST         N、Options

CEFGJL


python基礎(chǔ)知識:輸入、輸出、運算符、數(shù)據(jù)類型轉(zhuǎn)換

  • python是用什么方法來進行輸出操作的?
    print()

  • 請輸出你對輸入的理解
    用代碼 獲取 用戶通過 鍵盤 輸入的信息

  • python是用什么方法來進行輸入操作的?
    input()或input('請輸入:')

  • 什么是格式化,格式化輸出有什么作用
    在輸出字符串中使用%,輸出文字信息的同時,一起輸出 數(shù)據(jù)

  • 目前你學(xué)過哪幾種python的運算符
    算數(shù)運算符,比較運算符,邏輯運算符,賦值運算符
    要求:

  • 練習所有的運算符操作(算術(shù)、賦值、復(fù)合賦值)

# 嘗試所有運算符
# 算數(shù)運算符
print(1+2)
print(1-2)
print(1*2)
print(1/2)
print(3%2)
print(5//3)
print(3**2)
# 賦值運算符
a = 1
print(a)
# 復(fù)合賦值運算符
# a += 1
# a -= 1
a *= 2
print(a)
# 上面算數(shù)運算符都能跟=號組合
  • 練習實現(xiàn)字符串轉(zhuǎn)換為數(shù)字,以及數(shù)字轉(zhuǎn)換為字符串
a = '123'
print(type(a))
b = 123
print(type(b))
a = int(a)
b = str(b)
print(type(a))
print(type(b))
  • python3中如何對數(shù)值取商和取余
    // %
  • 變量a="10";b="30";c=a+b;請說出c的值是什么,類型是什么,如果我希望讓c="40",應(yīng)該怎么做
    c = '1030'
    c = int(a)+int(b)
  • 編寫一段代碼,定義任意數(shù)量(至少三個)的變量,并按照'a = xxx,b=xxx,...'的格式打印出變量的名字和該變量所存儲的數(shù)據(jù),要求運用格式化輸出,并且每一行代碼,須寫上相應(yīng)的注釋進行說明
# 定義變量
a = 1
b = 2
c = 'hello'
# 格式化輸出
print('a=%d,b=%d,c=%s'%(a,b,c))
  • 編寫一個cart.py(打印名片)程序
    運行程序后,分別輸入姓名、性別、年齡、單位、聯(lián)系方式等數(shù)據(jù),并用變量分別接收
    輸入完成后,最后打印出姓名、性別、年齡、單位、聯(lián)系方式等信息,輸出的格式自行設(shè)定,盡量美觀
    輸出需使用上格式化輸出
    提示:%d-數(shù)字 %s-字符串 %f-小數(shù)
# 名片小程序
name = input("請輸入您的姓名:")
gender = input("請輸入您的性別:")
age = input("請輸入您的年齡:")
company = input("請輸入您的工作單位:")
moble = input("請輸入您的手機號:")
email = input("請輸入您的郵箱:")

print('%s\t%s\t%s歲\n公司:%s\n手機:%s\nEmail:%s'%(name,gender,age,company,moble,email))
  • 修復(fù)程序bug
    -請找出下列代碼運行時出錯的原因,一一列出并一一糾正。
# coding=utf-8
# 定義字符串變量temp1
temp1 = "hello python' ------>   引號
# 接收用戶的輸入
temp2 = input("請輸入:")
# 定義數(shù)字變量temp3
temp3 = 333
# 定義字符串變量temp4
temp4 = "333"
# 求和
temp5 = temp3 + temp4  ----->   int類型 與 str類型相加

if temp5 == 666      ----->    缺少冒號:
    print("%s + %s = %s, 挺溜啊"%(temp3,temp4,temp5))
if temp5 != 666:
print("一點兒也bu溜")     ------>    縮進不對,if語句下的代碼塊不能為空
print("您剛剛輸入的是:%d"%temp2)     ------>     temp2是字符串類型

提示:

  1. input輸入的數(shù)據(jù),是字符串類型
  2. 不同類型的變量不能進行運算
  3. == 符號 判斷兩端的值是否相等
  4. != 符號 判斷兩邊的值是否不相等
  5. if 后面的的代碼需要縮進
# coding=utf-8
# 定義字符串變量temp1
temp1 = 'hello python' #------>   引號
# 接收用戶的輸入
temp2 = input("請輸入:")
# 定義數(shù)字變量temp3
temp3 = 333
# 定義字符串變量temp4
temp4 = "333"
# 求和
temp5 = temp3 + int(temp4) # ----->   int類型 與 str類型相加

if temp5 == 666: #     ----->    缺少冒號:
    print("%s + %s = %s, 挺溜啊"%(temp3,temp4,temp5))
elif temp5 != 666:
    print("一點兒也bu溜") #    ------>    縮進不對,if語句下的代碼塊不能為空
    print("您剛剛輸入的是:%s"%temp2)  #   ------>     temp2是字符串類型

條件語句

  • 什么是判斷語句
    使用if語句對條件進行判斷的代碼塊
  • 請寫出if判斷語句的使用格式
if 條件判斷:
  執(zhí)行動作
elif 條件判斷:
  執(zhí)行動作
else :
  執(zhí)行動作
  • 按照下列步驟操作
  1. 編寫一個counter.py程序
  2. 在counter.py中指定使用./counter.py運行時,使用的是python3
  3. 使用注釋開啟中文支持
  4. 設(shè)計程序分三次獲取3個數(shù)字,并賦值給變量
  5. 將3次輸入的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型,然后把相加后的值賦值給變量sum
  6. 如果sum>100000, 則輸出"您輸入的三個數(shù)的和忒大了"
  7. 如果sum>10000, 則輸出"您輸入的三個數(shù)的和挺大"
  8. 如果sum>1000, 則輸出"您輸入的三個數(shù)的和有點大"
  9. 如果sum>100, 則輸出"您輸入的三個數(shù)的和不算大"
  10. 如果sum<=100, 則輸出"您輸入的三個數(shù)的和忒小了"
  11. 要求每次輸入最終都只打印一條語句,且該語句符合你的預(yù)期,如我分別輸入100,200,300,最后只會打印"您輸入的三個數(shù)的和不算大",而不會打印其他情況

提示:

  1. 注意安排好判斷語句的順序,否則會得到超出預(yù)期的結(jié)果
  2. which python3 可以查看python3程序所在位置
# 4. 設(shè)計程序分三次獲取3個數(shù)字,并賦值給變量
num1 = input('請輸入3個數(shù)字(1/3):')
num2 = input('請輸入3個數(shù)字(2/3):')
num3 = input('請輸入3個數(shù)字(3/3):')
# 5. 將3次輸入的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型,然后把相加后的值賦值給變量sum
sum = int(num1) + int(num2) + int(num3)
# 6. 如果sum>100000, 則輸出"您輸入的三個數(shù)的和忒大了"
if  sum>100000:
    print('您輸入的三個數(shù)的和忒大了')
# 7. 如果sum>10000, 則輸出"您輸入的三個數(shù)的和挺大"
elif sum>10000:
    print('您輸入的三個數(shù)的和挺大')
# 8. 如果sum>1000, 則輸出"您輸入的三個數(shù)的和有點大"
elif sum>1000:
    print('您輸入的三個數(shù)的和有點大')
# 9. 如果sum>100, 則輸出"您輸入的三個數(shù)的和不算大"
elif sum>100:
    print('您輸入的三個數(shù)的和不算大')
# 10. 如果sum<=100, 則輸出"您輸入的三個數(shù)的和忒小了"
else :
    print('您輸入的三個數(shù)的和忒小了')
# 11. 要求每次輸入最終都只打印一條語句,且該語句符合你的預(yù)期,如我分別輸入100,200,300,最后只會打印"您輸入的三個數(shù)的和不算大",而不會打印其他情況

image.png
  • 編寫代碼,1-7七個數(shù)字,分別代表周一到周日,如果輸入的數(shù)字是6或7,輸出“周末”,如果輸入的數(shù)字是1-5,輸出“工作日”,如輸入其他數(shù)字,輸出“錯誤”。
a = input('請輸入1-7中的一個數(shù)字:')
if int(a)<=5:
    print('工作日')
elif int(a)<=7:
    print('周末')
else:
    print('錯誤')

循環(huán)語句

完整的for循環(huán)語法是什么?

  • 使用while循環(huán)計算1~100的累積和(包含1和100)。
a = 0
sum = 0
while a<100:
    a += 1
    sum = sum + a
print(sum)
  • 使用while循環(huán)輸出如下圖形:


a = 0
while a<5:
    a += 1
    print('* '*a)
  • 使用while循環(huán)輸出如下圖形:


a = 5
while a>0:
    print('* '*a)
    a -= 1
  • 完成猜拳游戲的練習
# 輸入猜拳選擇
a = int(input('請出拳:石頭(1),剪刀(2),布(3)'))
if a == 1:
    print('你選擇出:石頭')
elif a == 2:
    print('你選擇出:剪刀')
elif a == 3:
    print('你選擇出:布')
# 程序隨機出拳
b = random.randint(1, 3)
if b == 1:
    print('你遇到了:石頭')
elif b == 2:
    print('你遇到了:剪刀')
elif b == 1:
    print('你遇到了:布')
#產(chǎn)生結(jié)果
if (a == 1 and b == 2) or (a == 2 and b == 3) or (a == 3 and b == 1):
    print('你獲得了勝利')
elif a == b:
    print('平局')
else:
    print('你輸了,再來一局吧!')
  • 完成九九乘法表的練習
# 觀察九九乘法表,列號*行號
row = 1
while row <= 9:
    col = 1
    while col <= row:
        print('%d*%d=%d' % (col, row, col * row), end='\t')
        col += 1
    print()
    row += 1

高級變量類型列表、元組

  • 列表和普通變量有什么區(qū)別
    列表里面存儲多個元素,是個元素的集合
  • 怎樣測量列表中元素的個數(shù)?
    len(list)
  • 怎樣獲取列表的某個元素
    list[n]
  • 解釋一下什么是越界
    想要獲取的索引超出列表索引范圍
  • 什么是切片?
    切片是列表的指定部分
    listn:m
    list:n
    listn:
  • 怎么想列表中添加元素?
    list.insert()
    list.append()
    list.extend()
  • 如何刪除列表中的某個元素?
    del list[n]
    list.pop(n)
    list.remove(n)
  • 如何修改列表中的某個元素?
    賦值修改list[n] = n
  • 如何去查找列表中某個元素所對應(yīng)的下標?
    list.index('n')
  • 已有列表nums=[11,22,33,44,55],使用for循環(huán)遍歷列表
for i in nums:
  print(i)
  • 已有列表nums=[11,22,33,44,55],使用while循環(huán)遍歷列表
a = 0
while a<=len(nums):
  print(nums[a])
  a+=1
  • 已有列表nums=[14,22,63,21,5],將其從小到大排序
    nums.sort()
    nums
  • 元組定義的格式?
    元組用() 定義
  • 元組和列表的區(qū)別?
    元組的元素不能修改也不能重復(fù)

函數(shù)

  • 什么是函數(shù)? 為什么要使用函數(shù)?
    函數(shù)是通過一個指定的標識符()可以復(fù)用一塊代碼功能的功能,目的是為了提高代碼的復(fù)用性
  • Python的內(nèi)置函數(shù)有什么?分別有什么作用?
    type(),返回對象的類型
    int(),將對象的數(shù)據(jù)類型變成整數(shù)
  • 定義函數(shù)、和調(diào)用函數(shù)的格式分別是什么?
    def func():
    func()
  • 編寫一段代碼,定義一個函數(shù)求1-100之間所有偶數(shù)的和,并調(diào)用該函數(shù)打印出結(jié)果。
def func():
    a = 1
    sum = 0
    while a<100:
        if a%2 == 0:
            sum+=a
        a+=1
    return sum
print(func())
  • 函數(shù)的文檔說明有什么用?
    通過''' '''在函數(shù)內(nèi)部最開始設(shè)置函數(shù)說明,為了方便調(diào)用的時候了解函數(shù)的參數(shù),返回值等關(guān)鍵信息
  • 什么是函數(shù)的參數(shù)?為什么使用參數(shù)?
    def func(a,b) a,b就是參數(shù),通過參數(shù)可以擴展函數(shù)的使用,參數(shù)起到占位作用,函數(shù)運行時會替換成真實數(shù)據(jù)
  • 分別說明什么是形參和實參?
    形參就是定義函數(shù)時設(shè)置的參數(shù),實參是調(diào)用函數(shù)時傳入的參數(shù)
  • 編寫一段代碼,定義一個函數(shù)求兩個數(shù)之間所有整數(shù)的和,在調(diào)用該函數(shù)時傳入這兩個數(shù)的具體值。
def func(a,b):
    sum = 0
    for n in range(int(a),int(b)+1):
        sum += n
    return sum

print(func(1,5))
  • 什么是返回值?
    函數(shù)中return關(guān)鍵字后面的代碼就是返回值
  • 根據(jù)參數(shù)、返回值,函數(shù)有哪四種類型?
    位置參數(shù),默認參數(shù),關(guān)鍵字參數(shù),可變參數(shù)
    答案:無參數(shù)、無返回值無參數(shù)、有返回值有參數(shù)、無返回值有參數(shù)、有返回值
  • 什么是函數(shù)的嵌套、函數(shù)嵌套的格式是什么?
    在函數(shù)的內(nèi)部定義函數(shù)
    def func():
    def func():
  • 什么是局部變量?
    函數(shù)內(nèi)部的變量
  • 什么是全局變量?
    函數(shù)外部的變量
  • 全局變量和局部變量的區(qū)別是什么?

定義:
全局變量定義在全局空間,函數(shù)外部
局部變量定義在函數(shù)內(nèi)部
引用:
全局變量可以被所有的函數(shù)使用
局部變量只能在該函數(shù)內(nèi)使用,其它函數(shù)不能訪問
修改:
局部變量在函數(shù)內(nèi)部修改不受限制
全局變量在函數(shù)內(nèi)部修改受限制

  • 怎么在函數(shù)內(nèi)部去修改全局變量的值?
    變量前加global 申明為全局變量

  • 設(shè)計一個程序,計算出 0-n 之間所有整數(shù)的和,并將計算的值返回。

def func(n):
    a = 0
    sum = 0
    while a<=n:
        sum += a
        a+=1
    return sum
print(func(100))
  • 使用函數(shù)完成用戶登錄驗證的程序。(用戶名和密碼傳入到函數(shù)中進行驗證)
def func(username,password):
    if username == 'python' and password== '123456789':
        return '歡迎'
    else:
        return '賬號或密碼錯誤'
print(func('python','123456789'))
  • 定義一個函數(shù),要求輸入大于0的數(shù)字n,判斷傳入數(shù)字的奇偶性,如果是奇數(shù)返回 "n是奇數(shù)",否則返回 “n是偶數(shù)”,否則 返回“請輸入大于0的整數(shù)”
def func(n):
    if n>0:
        if n%2==0:
            return'n是偶數(shù)'
        else:
            return 'n是奇數(shù)'
    else:
        return '請輸入大于0的整數(shù)'
print(func(-1))
  • 定義一個函數(shù)main(),將1—200(范圍包含1和200)中3的倍數(shù)或者有數(shù)字3的所有整數(shù)保存到列表list_1中,并輸出。
def main():
    list_1 = []
    for i in range(1,201):
        if i%3==0 or str(i).find('3')>=0: # find(),包含的話,返回第一次出現(xiàn)的位置,沒有的話為負數(shù)
            list_1.append(i)
    return list_1
print(main())
  • 編寫一個程序,通過鍵盤循環(huán)獲取5個學(xué)生的信息,將學(xué)生信息組成字典保存到列表中,最終將學(xué)生信息列表打印出來。(學(xué)生信息包括 name 、age、id)
def main():
    list = []  # 儲存所有學(xué)生信息的列表
    i = 1
    while i <= 5:
        # 獲取指定的輸入信息
        id = input('請輸入學(xué)生ID:')
        name = input('請輸入學(xué)生姓名:')
        age = int(input('請輸入學(xué)生年齡:'))
        # 將輸入信息儲存在字典中,循環(huán)時會覆蓋新的輸入
        stu = {'id': id, 'name': name, 'age': age}
        # 將字典數(shù)據(jù)添加到列表中
        list.append(stu)
        i += 1
    return list

print(main())
  • 函數(shù)中return的作用
  • 函數(shù)中如果有多個return,會是什么效果
    只有一個return會被執(zhí)行
    一旦執(zhí)行了某個return,函數(shù)也將被立即終止,其余return將不會再執(zhí)行
  • python中函數(shù)的參數(shù)類型有哪些
    位置參數(shù),默認參數(shù),關(guān)鍵字參數(shù),可變參數(shù)
  • 什么是缺省參數(shù)
    默認參數(shù),實參不提供時會按照默認值運行函數(shù),
  • 什么是不定長參數(shù)
    可變參數(shù),分為元組可變參數(shù)(args)和字典可變參數(shù)(**args),元組可變參數(shù)會將實參都包裝成元組,字典可變參數(shù)會將關(guān)鍵字參數(shù)封裝成字典
  • 定義一個使用不定長參數(shù)的函數(shù),并在函數(shù)中打印出參數(shù)及其類型,統(tǒng)計傳入?yún)?shù)的個數(shù),
def main(*abc):

    print('共有%s個參數(shù),其中:' % len(abc))
    for i in abc:
        #print(i)
        print('參數(shù)%s類型為:%s' % (i, type(i)))

main(1,2,'ren')
  • 定義一個函數(shù)max,接受的參數(shù)類型是數(shù)值,最終返回兩個數(shù)中的最大值
  def max(a,b):
    if a>=b:
        return a
    else:
        return b

print(max(3,1))
  • 定義一個函數(shù)min,接受的參數(shù)類型是數(shù)值,最終返回兩個數(shù)中的最小值
  def min(a,b):
    if a<=b:
        return a
    else:
        return b

print(max(3,1))
  • 分別定義加減乘除四個函數(shù)實現(xiàn)兩個數(shù)之間的加減乘除操作
    def Calculate(a,b):
    return a*b
  • 比較下列三個函數(shù)的區(qū)別:
# 無參數(shù)計算1-100的累加
def func1():
    i = 1
    sum = 0
    while i<=100:
        sum += i
        i += 1
    return sum
#位置參數(shù),計算參數(shù)-100的累加
def func2(n):
    i = n
    sum = 0
    while i <=100:
        sum += i
        i += 1
    return sum
# 默認參數(shù),計算n-m的累加,如不傳參數(shù)則默認計算0-100的累加
def func3(n=1, m=100):
    i = n
    sum = 0
    while i <= m:
        sum += i
        i += 1
    return sum

  • 定義函數(shù)findall,實現(xiàn)對字符串find方法的進一步封裝,要求返回符合要求的所有位置的起始下標,如字符串"helloworldhellopythonhelloc++hellojava",需要找出里面所有的"hello"的位置,最后將返回一個元組(0,10,21,29),即將h的下標全部返回出來,而find方法只返回第一個.
def findall(a,b):
    w = []
    # 初始化每次find返回坐標在原字符串的的位置
    m = 0
    # 當find能返回坐標時就繼續(xù)循環(huán),不能返回坐標時返回-1
    while a.find(b) >= 0:
        index = a.find(b) #記錄當前字符串的find坐標
        if len(w)>0: # 第一次find返回坐標時不需要累加len(b)
            m = m + index +len(b) # 累計歷次find的坐標
        else:
            m = m + index # 第一次find返回坐標時不需要累加len(b)
        w.append(m) # 把累計坐標添加進列表
        a = a[index+len(b):] # find返回一次坐標就截掉坐標+b字符串,剩下部分才能再利用find返回坐標
    return tuple(w) # 返回元組結(jié)果
print(findall("helloworldhellopythonhelloc++hellojava",'hello'))

文件操作

  • 如何理解文件?
    文件是用以永久性保存內(nèi)存中的運算結(jié)果的具體形式

  • 為什么要用文件?
    永久性保存內(nèi)存中的運算結(jié)果,便于以后再次使用

  • 簡述文件操作的流程?
    打開
    讀/寫
    關(guān)閉

  • 如何打開一個文件?
    open() 或者with open()as f

  • 上題中打開文件的函數(shù)格式是什么?
    open('地址',‘模式’) with open("test.txt","r") as f

  • 有一個test.txt文件,以只讀的方式打開此文件,用變量f接收文件打開的返回值.
    f = open('test.txt','r')

  • 文件訪問模式中r表示什么模式,r+表示什么模式?
    r,只讀模式,只能讀取不能寫,r+,即能都又能寫

  • 文件訪問模式中r與r+有什么區(qū)別?
    r,只讀模式,只能讀取不能寫,r+,即能都又能寫

  • 文件訪問模式中w表示什么模式,w+表示什么模式?
    w,只寫模式,只能寫不能讀,w+,即能都又能寫

  • 文件操作中要在文件中追加改如何操作?
    采用追加模式a打開文件,file.write('內(nèi)容')

  • 如何關(guān)閉一個文件?
    file.close()

  • 將打開的test.txt文件關(guān)閉,用變量f接收返回值.
    f = open('test.txt')
    f.close()
    提示:
    打開文件之門的"鑰匙",open()函數(shù).
    文件的訪問模式即為訪問權(quán)限
    打開一個文件,可以不用指定打開的模式.
    如果讀了多次數(shù)據(jù),那么后面讀取的數(shù)據(jù)是從上次讀完的位置開始的.

  • 寫出目前我們所學(xué)對文件操作的哪幾個權(quán)限?
    w r a w+ r+ a+ wb rb ab

  • 如何在打開的test.txt文件中寫入數(shù)據(jù)?
    file.write()

  • 請在test.txt文件中寫入"wow,so beautiful!".
    f = open('test.txt','w')
    f.write('wow,so beautiful!')
    f.close()
    或者
    with open("lan.txt","w") as f:
    f.write("wow you are so beautiful")

  • 編寫一段代碼以完成兩份文件之間的相互備份

  1. 創(chuàng)建gailun.txt文件
  2. 打開文件在gailun.txt中寫入"德瑪西亞!人在塔在!"
  3. 將輸入的數(shù)據(jù)格式化輸出到終端上
  4. 在文件夾中創(chuàng)建gailun副本.txt文件
  5. 將gailun.txt文件中的數(shù)據(jù)寫入gailun副本.txt文件中
  6. 打開文件,查看文件中是否有內(nèi)容
# 創(chuàng)建gailun.txt文件
with open('gailun.txt','w+',encoding='utf-8') as f:
    # 打開文件在gailun.txt中寫入"德瑪西亞!人在塔在!"
    f.write('德瑪西亞!人在塔在!')
    f.seek(0,0) # offset ,偏移量,whence:可選,默認值為 0。0代表從文件開頭開始算起,1代表從當前位置開始算起,2代表從文件末尾算起。
    content = f.read()
    # 將輸入的數(shù)據(jù)格式化輸出到終端上
    print('文件內(nèi)容是:%s'%content)

# 在文件夾中創(chuàng)建gailun副本.txt文件
with open('gailun.txt','r',encoding='utf-8') as f_:
    # 將gailun.txt文件中的數(shù)據(jù)寫入gailun副本.txt文件中
    f_.seek(0,0)
    content = f_.read()
    print(content)
    new_file = open('gailun副本.txt','w+',encoding='utf-8')
    new_file.write(content)
    new_file.close()
# 打開文件,查看文件中是否有內(nèi)容
  • 什么情況下要用到復(fù)制?
  • 怎樣實現(xiàn)文件的復(fù)制?
  • 如何理解文件的定位?
  • 如果在讀寫文件的過程中,需要從另外一個位置進行操作的話,該怎么操作?
  • seek()函數(shù)有幾個參數(shù),分別代表什么?
  • seek(5,0)表示什么意思?
  • seek(-5,2)表示什么含義?
  • seek(3,1)表示什么含義?
    提示:
    文件的復(fù)制過程實質(zhì)上就是把一個文件中的內(nèi)容讀出來,然后寫入另一個文件中。
    獲取文件當前位置用tell(),重新設(shè)置讀寫位置要用seek().
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容