Python面試題及詳細答案150道(71-80) -- 文件操作篇

前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。

前后端面試題-專欄總目錄

在這里插入圖片描述

文章目錄

  • 一、本文面試題目錄
      • 71. Python中打開文件的模式有哪些?(如`r`、`w`、`a`、`rb`、`wb`等)
      • 72. 如何讀取文件內容?(`read()`、`readline()`、`readlines()`的區別)
      • 73. 什么是上下文管理器(`with`語句)?它的優勢是什么?
      • 74. 如何寫入文件內容?
      • 75. 如何處理CSV文件?(使用`csv`模塊或`pandas`)
        • 1. 使用`csv`模塊(標準庫)
        • 2. 使用`pandas`庫(第三方庫)
      • 76. 如何遍歷一個目錄下的所有文件和子目錄?(`os.walk()`)
      • 77. 如何獲取文件的大小、創建時間、修改時間?
        • 方法1:使用 `os` 模塊
        • 方法2:使用 `pathlib` 模塊(面向對象風格)
      • 78. 如何重命名或刪除文件/目錄?
        • 1. 重命名文件/目錄
        • 2. 刪除文件/目錄
      • 79. 什么是二進制文件和文本文件?它們的操作有何區別?
        • 定義
        • 操作區別
        • 示例
        • 關鍵區別總結
      • 80. 如何處理大文件(內存無法一次性加載)?
        • 核心原則
        • 常用方法
        • 注意事項
  • 二、150道Python面試題目錄列表

一、本文面試題目錄

71. Python中打開文件的模式有哪些?(如rwarbwb等)

在Python中,使用open()函數打開文件時,需要指定文件模式,用于定義文件的操作方式(讀/寫)和數據類型(文本/二進制)。常見的文件模式如下:

模式含義說明
r只讀(默認)打開已存在的文件,若文件不存在則報錯;指針位于文件開頭。
w只寫打開文件用于寫入,若文件不存在則創建,若已存在則清空內容;指針位于文件開頭。
a追加打開文件用于寫入,若文件不存在則創建,新內容追加到文件末尾;指針位于文件末尾。
r+讀寫打開文件用于讀寫,文件必須存在;指針位于文件開頭。
w+讀寫打開文件用于讀寫,若文件不存在則創建,若已存在則清空內容。
a+讀寫打開文件用于讀寫,若文件不存在則創建,寫入時追加到末尾,讀時需移動指針。
rb二進制只讀以二進制模式打開文件只讀(用于非文本文件,如圖片、音頻)。
wb二進制只寫以二進制模式打開文件只寫。
ab二進制追加以二進制模式打開文件追加。
rb+/wb+/ab+二進制讀寫結合二進制和讀寫功能的模式。

示例

# 只讀模式打開文本文件
with open("test.txt", "r", encoding="utf-8") as f:content = f.read()# 只寫模式打開文本文件(覆蓋原有內容)
with open("output.txt", "w", encoding="utf-8") as f:f.write("Hello, World!")# 追加模式打開文本文件
with open("log.txt", "a", encoding="utf-8") as f:f.write("New log entry\n")# 二進制模式讀取圖片
with open("image.png", "rb") as f:data = f.read()

注意

  • 文本模式(無b)需指定encoding(如utf-8),用于字符編碼轉換;二進制模式(有b)直接操作字節,無需編碼。
  • 寫入時若不指定encoding,默認使用系統編碼,可能導致跨平臺兼容性問題。

72. 如何讀取文件內容?(read()readline()readlines()的區別)

Python文件對象提供了多種讀取內容的方法,核心區別在于讀取范圍和返回值格式:

方法功能返回值適用場景
read(size)讀取指定字節數(文本模式下為字符數),若未指定則讀取全部內容。字符串(文本模式)或字節串(二進制模式)。讀取小文件或需要一次性獲取全部內容時。
readline(size)讀取一行內容,包括換行符\nsize限制最大讀取長度。單行字符串(或字節串),若到文件末尾返回空字符串。逐行讀取大文件,節省內存。
readlines(hint)讀取所有行,hint為可選參數,限制總字符數(約)。包含所有行的列表,每行作為列表元素。需要按行處理且文件不大時。

示例
假設有test.txt文件內容如下:

第一行內容
第二行內容
第三行內容
  1. read()示例

    with open("test.txt", "r", encoding="utf-8") as f:# 讀取全部內容content = f.read()print(content)# 輸出:# 第一行內容# 第二行內容# 第三行內容# 讀取前5個字符f.seek(0)  # 指針移回開頭part = f.read(5)print(part)  # 第一行內
    
  2. readline()示例

    with open("test.txt", "r", encoding="utf-8") as f:line1 = f.readline()line2 = f.readline()print(line1)  # 第一行內容(包含換行符)print(line2)  # 第二行內容
    
  3. readlines()示例

    with open("test.txt", "r", encoding="utf-8") as f:lines = f.readlines()print(type(lines))  # <class 'list'>print(lines)  # ['第一行內容\n', '第二行內容\n', '第三行內容']# 遍歷行列表for line in lines:print(line.strip())  # 去除換行符和空格
    
  4. 直接迭代文件對象(推薦逐行讀取)
    文件對象本身是可迭代的,逐行讀取時內存效率最高:

    with open("test.txt", "r", encoding="utf-8") as f:for line in f:  # 每次讀取一行,自動處理指針print(line.strip())
    

總結

  • 大文件優先使用for line in freadline(),避免占用過多內存。
  • 小文件可使用read()readlines()一次性讀取。

73. 什么是上下文管理器(with語句)?它的優勢是什么?

上下文管理器(Context Manager) 是一種用于管理資源(如文件、網絡連接、數據庫連接)的機制,通過with語句實現,確保資源在使用后被正確釋放(即使發生異常)。

基本語法

with 資源獲取表達式 as 變量:# 使用資源的代碼塊

文件操作示例

# 使用with語句操作文件(自動關閉)
with open("test.txt", "r") as f:content = f.read()
# 代碼塊結束后,文件自動關閉,無需手動調用f.close()

上下文管理器的優勢

  1. 自動釋放資源
    無論代碼塊是否正常執行或發生異常,資源都會被自動釋放(如文件關閉、連接斷開),避免資源泄漏。

    # 不使用with的風險(可能忘記關閉文件)
    f = open("test.txt", "r")
    content = f.read()
    # f.close()  # 若忘記調用,文件可能保持打開狀態
    
  2. 簡化代碼
    無需顯式編寫try...finally塊來確保資源釋放,代碼更簡潔。

    # 等價的try...finally寫法
    f = open("test.txt", "r")
    try:content = f.read()
    finally:f.close()  # 確保關閉
    
  3. 支持多個資源同時管理
    可在一個with語句中處理多個資源,按順序獲取并逆序釋放。

    with open("a.txt", "r") as f1, open("b.txt", "w") as f2:content = f1.read()f2.write(content)
    

自定義上下文管理器
通過實現__enter__()__exit__()方法可自定義上下文管理器:

class MyContext:def __enter__(self):print("進入上下文:獲取資源")return "資源對象"  # 賦值給as后的變量def __exit__(self, exc_type, exc_val, exc_tb):print("退出上下文:釋放資源")# 處理異常(若返回True則抑制異常)return Falsewith MyContext() as res:print(f"使用{res}")
# 輸出:
# 進入上下文:獲取資源
# 使用資源對象
# 退出上下文:釋放資源

常見應用場景

  • 文件操作(最常用)
  • 數據庫連接
  • 網絡請求
  • 線程鎖

with語句是Python中處理資源的最佳實踐,既安全又簡潔。

74. 如何寫入文件內容?

在Python中,寫入文件需先以寫入模式(如war+等)打開文件,再通過文件對象的寫入方法(write()writelines())寫入內容。

常用寫入方法

  1. write(string):寫入字符串(文本模式)或字節串(二進制模式),返回寫入的字符數(或字節數)。
  2. writelines(iterable):寫入可迭代對象(如列表)中的所有元素,元素需為字符串(或字節串),不自動添加換行符。

示例

  1. 基本寫入(覆蓋模式w

    # 以只寫模式打開,若文件存在則覆蓋內容
    with open("output.txt", "w", encoding="utf-8") as f:# 寫入單行f.write("Hello, World!\n")  # \n手動添加換行# 寫入多行f.write("這是第二行\n")f.write("這是第三行\n")
    

    output.txt內容:

    Hello, World!
    這是第二行
    這是第三行
    
  2. 追加寫入(a模式)

    # 以追加模式打開,新內容添加到文件末尾
    with open("output.txt", "a", encoding="utf-8") as f:f.write("這是追加的一行\n")
    

    output.txt內容變為:

    Hello, World!
    這是第二行
    這是第三行
    這是追加的一行
    
  3. 使用writelines()寫入列表

    lines = ["第一行\n", "第二行\n", "第三行\n"]
    with open("lines.txt", "w", encoding="utf-8") as f:f.writelines(lines)  # 寫入列表中的所有字符串
    
  4. 讀寫模式(r+)插入內容

    # 打開已存在的文件,讀取并插入內容
    with open("output.txt", "r+", encoding="utf-8") as f:content = f.read()  # 先讀取全部內容f.seek(0)  # 指針移回開頭f.write("在開頭插入的內容\n" + content)  # 覆蓋寫入(插入到開頭)
    
  5. 二進制寫入

    # 寫入二進制文件(如圖片、音頻)
    data = b"Binary data: \x00\x01\x02"  # 字節串
    with open("binary.bin", "wb") as f:f.write(data)
    

注意

  • 文本模式下,write()接收字符串,需注意編碼(通過encoding參數指定)。
  • 二進制模式下,write()接收字節串(前綴b的字符串),不涉及編碼。
  • 寫入后內容可能緩存在內存中,可通過f.flush()強制刷新到磁盤,或關閉文件時自動刷新。

75. 如何處理CSV文件?(使用csv模塊或pandas

CSV(Comma-Separated Values)是一種常用的表格數據格式,Python中可通過csv標準庫或pandas庫處理。

1. 使用csv模塊(標準庫)

csv模塊提供基礎的CSV讀寫功能,適合簡單場景。

讀取CSV文件

import csv# 讀取CSV(默認逗號分隔)
with open("data.csv", "r", encoding="utf-8") as f:reader = csv.reader(f)  # 創建reader對象header = next(reader)  # 獲取表頭(第一行)print("表頭:", header)# 遍歷數據行for row in reader:print("數據行:", row)# 讀取為字典(表頭為鍵)
with open("data.csv", "r", encoding="utf-8") as f:reader = csv.DictReader(f)  # DictReader按表頭映射為字典for row in reader:print(row["姓名"], row["年齡"])  # 通過表頭訪問

寫入CSV文件

import csv# 寫入CSV
data = [["姓名", "年齡", "城市"],["Alice", 30, "北京"],["Bob", 25, "上海"]
]with open("output.csv", "w", encoding="utf-8", newline="") as f:writer = csv.writer(f)  # 創建writer對象writer.writerows(data)  # 寫入多行# 按字典寫入(指定表頭)
with open("dict_output.csv", "w", encoding="utf-8", newline="") as f:fieldnames = ["姓名", "年齡", "城市"]writer = csv.DictWriter(f, fieldnames=fieldnames)writer.writeheader()  # 寫入表頭writer.writerow({"姓名": "Charlie", "年齡": 35, "城市": "廣州"})writer.writerows([{"姓名": "David", "年齡": 28, "城市": "深圳"},{"姓名": "Eve", "年齡": 22, "城市": "杭州"}])
2. 使用pandas庫(第三方庫)

pandas提供更強大的CSV處理功能,適合復雜數據分析場景,需先安裝:

pip install pandas

讀取CSV文件

import pandas as pd# 讀取CSV為DataFrame(表格數據結構)
df = pd.read_csv("data.csv")# 查看數據
print("前5行:")
print(df.head())  # 前5行
print("\n表頭:", df.columns.tolist())  # 表頭列表
print("\n數據類型:")
print(df.dtypes)  # 各列數據類型# 按條件篩選
adults = df[df["年齡"] >= 18]
print("\n成年人數據:")
print(adults)

寫入CSV文件

import pandas as pd# 創建DataFrame
data = {"姓名": ["Alice", "Bob", "Charlie"],"年齡": [30, 25, 35],"城市": ["北京", "上海", "廣州"]
}
df = pd.DataFrame(data)# 寫入CSV
df.to_csv("pandas_output.csv", index=False, encoding="utf-8")
# index=False:不寫入行索引

對比

工具優勢劣勢適用場景
csv模塊標準庫,無需安裝;輕量靈活。功能簡單,需手動處理數據類型;不支持復雜查詢。簡單讀寫、小文件、無第三方庫依賴時。
pandas功能強大,支持數據篩選、聚合、類型轉換;適合大文件。需要安裝;學習成本較高。數據分析、復雜處理、大文件。

注意

  • CSV文件可能使用非逗號分隔符(如制表符\t),csv模塊可通過delimiter參數指定,pandas通過sep參數指定。
  • 處理中文時需指定正確編碼(如utf-8)。

76. 如何遍歷一個目錄下的所有文件和子目錄?(os.walk()

os.walk()是Python os模塊提供的用于遞歸遍歷目錄樹的函數,能夠便捷地訪問指定目錄下的所有文件和子目錄。

工作原理

  • 接收一個目錄路徑作為參數,返回一個生成器(generator)。
  • 每次迭代生成一個元組 (root, dirs, files)
    • root:當前正在遍歷的目錄路徑。
    • dirs:當前目錄下的子目錄名稱列表(不包含路徑)。
    • files:當前目錄下的文件名稱列表(不包含路徑)。

示例

假設有如下目錄結構:

data/report.txtlogs/log1.txtlog2.txtimages/photo.jpg

遍歷 data 目錄:

import os# 遍歷目錄及其子目錄
for root, dirs, files in os.walk("data"):print(f"當前目錄: {root}")print(f"子目錄: {dirs}")print(f"文件: {files}")print("---")

輸出

當前目錄: data
子目錄: ['logs', 'images']
文件: ['report.txt']
---
當前目錄: data\logs
子目錄: []
文件: ['log1.txt', 'log2.txt']
---
當前目錄: data\images
子目錄: []
文件: ['photo.jpg']
---

實用場景

  1. 查找特定類型文件

    # 收集所有.txt文件的完整路徑
    txt_files = []
    for root, dirs, files in os.walk("data"):for file in files:if file.endswith(".txt"):full_path = os.path.join(root, file)  # 拼接完整路徑txt_files.append(full_path)
    print("所有TXT文件:", txt_files)
    
  2. 統計文件數量

    file_count = 0
    for root, dirs, files in os.walk("data"):file_count += len(files)
    print(f"總文件數: {file_count}")  # 輸出:4
    

注意

  • os.walk() 會自動遞歸進入所有子目錄,無需手動處理嵌套。
  • 可通過修改 dirs 列表控制是否遍歷某些子目錄(如 dirs[:] = [d for d in dirs if d != "temp"] 跳過 temp 目錄)。

77. 如何獲取文件的大小、創建時間、修改時間?

在Python中,可通過 os 模塊和 pathlib 模塊(Python 3.4+)獲取文件的元數據,包括大小、創建時間和修改時間。

方法1:使用 os 模塊
import os
import timefile_path = "example.txt"# 1. 獲取文件大小(字節)
file_size = os.path.getsize(file_path)
print(f"文件大小: {file_size} 字節")  # 如:1024 字節# 2. 獲取修改時間(時間戳)
modify_time_stamp = os.path.getmtime(file_path)
# 轉換為可讀時間
modify_time = time.ctime(modify_time_stamp)
print(f"修改時間: {modify_time}")  # 如:Wed Jun 12 10:30:45 2024# 3. 獲取創建時間(Windows系統有效,Unix系統可能返回最后元數據修改時間)
create_time_stamp = os.path.getctime(file_path)
create_time = time.ctime(create_time_stamp)
print(f"創建時間: {create_time}")
方法2:使用 pathlib 模塊(面向對象風格)
from pathlib import Path
import timefile_path = Path("example.txt")# 1. 文件大小
file_size = file_path.stat().st_size
print(f"文件大小: {file_size} 字節")# 2. 修改時間
modify_time = time.ctime(file_path.stat().st_mtime)
print(f"修改時間: {modify_time}")# 3. 創建時間
create_time = time.ctime(file_path.stat().st_ctime)
print(f"創建時間: {create_time}")

關鍵屬性說明

  • st_size:文件大小(字節)。
  • st_mtime:最后修改時間(時間戳,自1970-01-01 00:00:00 UTC起的秒數)。
  • st_ctime:在Windows上為創建時間,在Unix上為最后元數據修改時間。
  • st_atime:最后訪問時間(部分系統可能禁用更新以提高性能)。

格式化時間為指定格式

from datetime import datetimemodify_time = datetime.fromtimestamp(file_path.stat().st_mtime)
print(f"格式化修改時間: {modify_time.strftime('%Y-%m-%d %H:%M:%S')}")
# 輸出:2024-06-12 10:30:45

注意

  • 時間戳轉換需考慮時區,默認使用本地時區。
  • 目錄也可通過相同方法獲取大小和時間(目錄大小為元數據大小,非包含文件總大小)。

78. 如何重命名或刪除文件/目錄?

Python的 os 模塊和 pathlib 模塊提供了重命名和刪除文件/目錄的功能,操作簡單但需謹慎(刪除操作不可逆)。

1. 重命名文件/目錄

使用 os 模塊

import os# 重命名文件
old_file = "old_file.txt"
new_file = "new_file.txt"
os.rename(old_file, new_file)  # 若new_file已存在,會被覆蓋(Windows)或報錯(Unix)# 重命名目錄
old_dir = "old_dir"
new_dir = "new_dir"
os.rename(old_dir, new_dir)

使用 pathlib 模塊

from pathlib import Path# 重命名文件
old_file = Path("old_file.txt")
new_file = Path("new_file.txt")
old_file.rename(new_file)# 重命名目錄
old_dir = Path("old_dir")
new_dir = Path("new_dir")
old_dir.rename(new_dir)
2. 刪除文件/目錄

刪除文件

import os
from pathlib import Path# 使用os模塊
os.remove("file_to_delete.txt")  # 只能刪除文件,刪除目錄會報錯# 使用pathlib模塊
file = Path("file_to_delete.txt")
file.unlink()  # 同os.remove()

刪除目錄

  • os.rmdir() / Path.rmdir():刪除空目錄。
  • shutil.rmtree():刪除非空目錄(包含所有文件和子目錄)。
import os
import shutil
from pathlib import Path# 刪除空目錄
os.rmdir("empty_dir")  # 若目錄非空,會報錯
Path("empty_dir").rmdir()# 刪除非空目錄(慎用!)
shutil.rmtree("non_empty_dir")  # 遞歸刪除所有內容

示例:安全刪除前檢查

import os
import shutildef safe_delete(path):if not os.path.exists(path):print(f"{path} 不存在")returnif os.path.isfile(path):os.remove(path)print(f"文件 {path} 已刪除")elif os.path.isdir(path):# 檢查目錄是否為空if len(os.listdir(path)) == 0:os.rmdir(path)print(f"空目錄 {path} 已刪除")else:# 危險操作:刪除非空目錄confirm = input(f"確定刪除非空目錄 {path} 及其內容?(y/n)")if confirm.lower() == "y":shutil.rmtree(path)print(f"目錄 {path} 已刪除")safe_delete("test.txt")
safe_delete("empty_folder")
safe_delete("full_folder")

注意

  • 重命名時,若目標路徑已存在,可能覆蓋或報錯(取決于操作系統)。
  • 刪除操作不可逆,尤其是 shutil.rmtree() 會徹底刪除目錄及內容,務必謹慎。
  • 操作前建議檢查文件/目錄是否存在(os.path.exists()Path.exists())。

79. 什么是二進制文件和文本文件?它們的操作有何區別?

文本文件二進制文件是計算機中兩種基本文件類型,其存儲格式和操作方式有顯著區別:

定義
  • 文本文件:以字符編碼(如UTF-8、GBK)存儲的文件,內容由可打印字符(文字、數字、符號)組成,可被文本編輯器直接閱讀(如.txt.py.csv)。
  • 二進制文件:以字節(0-255的數值)直接存儲數據,內容是計算機可執行的指令或特定格式的二進制數據(如.png.mp3.exe.zip),需專用軟件解析。
操作區別
特性文本文件二進制文件
打開模式使用 r/w/a 等模式,需指定編碼(如 encoding="utf-8"使用 rb/wb/ab 等模式,無需編碼參數
數據單位字符(由編碼映射的字節序列)字節(原始二進制數據)
讀寫內容字符串(str 類型)字節串(bytes 類型,前綴 b
換行符處理自動轉換(如Windows的 \r\n 與Unix的 \n不處理換行符,按原始字節存儲
適用場景存儲文字信息(文檔、代碼、配置)存儲非文字數據(圖片、音頻、可執行文件)
示例
  1. 文本文件操作
# 寫入文本文件
with open("text.txt", "w", encoding="utf-8") as f:f.write("Hello, 世界!\n")  # 寫入字符串# 讀取文本文件
with open("text.txt", "r", encoding="utf-8") as f:content = f.read()  # 讀取為字符串print(content)  # Hello, 世界!
  1. 二進制文件操作
# 寫入二進制文件
data = b"\x89PNG\r\n\x1a\n..."  # 假設是PNG圖片的二進制數據(字節串)
with open("image.png", "wb") as f:f.write(data)  # 寫入字節串# 讀取二進制文件
with open("image.png", "rb") as f:binary_data = f.read()  # 讀取為字節串print(type(binary_data))  # <class 'bytes'>print(binary_data[:10])  # 打印前10個字節
關鍵區別總結
  • 文本文件本質是“字符的序列”,依賴編碼規則;二進制文件是“字節的序列”,不依賴編碼。
  • 錯誤的模式操作會導致問題(如用文本模式讀圖片會亂碼,用二進制模式讀文本可能包含未解碼的字節)。
  • 轉換關系:文本文件 → 字符串(str)→ 編碼(encode())→ 字節串(bytes)→ 二進制文件。

80. 如何處理大文件(內存無法一次性加載)?

處理大文件(如GB級日志、CSV)時,若一次性加載到內存會導致內存溢出,需采用分批讀取或流式處理的方式。

核心原則
  • 避免使用 read()readlines() 一次性讀取全部內容。
  • 逐行或分塊讀取,處理后釋放內存。
常用方法
  1. 文本文件:逐行讀取
    文件對象是可迭代的,每次迭代返回一行,內存效率高:

    # 處理大日志文件,統計包含"ERROR"的行數
    error_count = 0
    with open("large_log.txt", "r", encoding="utf-8") as f:for line in f:  # 逐行讀取,內存中只保留一行if "ERROR" in line:error_count += 1
    print(f"錯誤行數: {error_count}")
    
  2. 二進制文件:分塊讀取
    按固定大小(如4KB、1MB)分塊讀取,適用于圖片、視頻等:

    # 復制大文件(分塊讀取寫入)
    chunk_size = 4096  # 4KB塊
    with open("large_file.bin", "rb") as src, open("copy.bin", "wb") as dst:while True:chunk = src.read(chunk_size)  # 讀取一塊if not chunk:  # 讀取完畢(空字節串)breakdst.write(chunk)  # 寫入一塊
    
  3. CSV文件:分批處理
    使用 pandas 分塊讀取大型CSV:

    import pandas as pd# 每次讀取1000行
    chunk_size = 1000
    total = 0# 分塊讀取CSV
    for chunk in pd.read_csv("large_data.csv", chunksize=chunk_size):# 處理當前塊(如計算某列總和)total += chunk["value"].sum()print(f"總和: {total}")
    
  4. 生成器處理
    使用生成器(yield)封裝讀取邏輯,進一步控制內存:

    def read_large_file(file_path, chunk_size=4096):with open(file_path, "r", encoding="utf-8") as f:while True:chunk = f.read(chunk_size)  # 按字符數分塊if not chunk:breakyield chunk  # 生成器逐個返回塊# 使用生成器
    for chunk in read_large_file("large_text.txt"):# 處理塊(如搜索關鍵詞)if "target" in chunk:print("找到目標內容")break
    
注意事項
  • 分塊大小需平衡效率(太大占用內存,太小IO頻繁),通常設為4KB-1MB。
  • 處理行數據時,若行長度超過分塊大小,需注意跨塊拼接(如日志文件中單行可能很長)。
  • 二進制文件分塊時需保持塊大小一致,避免破壞文件結構。

通過上述方法,可在有限內存中高效處理遠超內存容量的大文件。

二、150道Python面試題目錄列表

文章序號Python面試題150道
1Python面試題及詳細答案150道(01-15)
2Python面試題及詳細答案150道(16-30)
3Python面試題及詳細答案150道(31-40)
4Python面試題及詳細答案150道(41-55)
5Python面試題及詳細答案150道(56-70)
6Python面試題及詳細答案150道(71-80)
7Python面試題及詳細答案150道(81-90)
8Python面試題及詳細答案150道(91-100)
9Python面試題及詳細答案150道(101-115)
10Python面試題及詳細答案150道(116-125)
11Python面試題及詳細答案150道(126-135)
12Python面試題及詳細答案150道(136-150)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93818.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93818.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python新工具-uv包管理工具

uv 是一個由 Astral (Ruff 的創建者) 開發的極速 Python 包和項目管理器&#xff0c;用 Rust 編寫。它旨在作為傳統 Python 包管理工具&#xff08;如 pip、pip-tools、pipx、poetry、pyenv、twine 和 virtualenv 等&#xff09;的替代品&#xff0c;通過其高性能和多功能集成&…

有關spring-ai的defaultSystem與systemMessage優先級

今天在寫項目的時候想用nacos隨時修改system的prompt&#xff0c;突然發現defaultSystem的優先級比systemMessage高很多&#xff0c;廢話我就不說了&#xff0c;看圖吧。你覺得證據不夠&#xff1f;那這樣呢&#xff1f;

#運維 | 前端 # Linux http.server 實踐:隱藏長文件名,簡短路徑 (http://IP:port/別名 ) 訪問

如何運行頁面為 http://ip:port/名稱 1. 準備文件目錄 假設文件原始位置&#xff1a; /home/ubuntu/projects/yinran/ckd.html將它移動到子目錄并改名為 index.html&#xff1a; mkdir -p /home/ubuntu/projects/yinran/ckd mv /home/ubuntu/projects/yinran/ckd.html \/home/u…

任務管理器不刷新

記錄一個小問題&#xff1a; 進入任務管理器之后發現頁面不會刷新&#xff0c;性能界面也是一致。解決辦法&#xff1a;查看–>更新速度–>正常

2025-08-21 Python進階9——__main__與lambda

文章目錄1 \_\_main\_\_1.1 name 變量1.1.1 當模塊作為主程序直接運行時1.1.2 當模塊被其他模塊導入時1.2 \_\_main\_\_ 的含義1.3 if \_\_name\_\_ \_\_main\_\_1.5 小結2 lambda表達式2.1 基本概念2.2 lambda 函數語法2.3 使用示例2.4 與高階函數結合使用2.4.1 與 map () 結…

Java:將視頻上傳到騰訊云并通過騰訊云點播播放

功能需求:傳入一個videoFile也就是視頻字節流,返回騰訊云點播的視頻保存url需要在騰訊云中尋找的配置信息:導入的依賴:<!--騰訊云點播--><dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId&…

Unity3D物理游戲網絡同步指南

前言 Unity3D 物理游戲的網絡同步是一個復雜但非常核心的話題。要實現一個流暢、公平且可擴展的多人物理游戲&#xff0c;需要深入的理解和精心的設計。 下面我將為你全面解析 Unity3D 物理游戲的網絡同步&#xff0c;包括核心概念、主流方案、實現細節以及最佳實踐。 對惹&…

Amazon Redshift 訪問配置完整指南

概述 Amazon Redshift 是 AWS 提供的云端數據倉庫服務,支持多種訪問方式。本文將詳細介紹如何配置 IAM 權限、使用 AWS 控制臺 Query Editor v2,以及通過 SQL Workbench/J 等第三方工具連接 Redshift 集群。 目錄 環境準備 IAM 權限配置 Redshift 用戶管理 AWS 控制臺訪問 …

electron-vite_19配置環境變量

前端配罟環境變量主要通過項目根目錄下的.env系列文件實現&#xff0c;不同框架(如Vue、React)或構建工具(如Vite、Webpack)的具體操作略有差異&#xff0c;但核心邏輯均為通過環境變量文件區分開發、測試、生產等環境。方案1: 直接在根目錄新建.env文件 1.在根目錄新建 .env.d…

【python】arange用法

1. NumPy 里的 np.arangeimport numpy as np# 語法 np.arange([start, ]stop, [step, ], dtypeNone)參數說明&#xff1a;start&#xff1a;起始值&#xff08;默認 0&#xff09;stop&#xff1a;終止值&#xff08;不包含這個值&#xff09;step&#xff1a;步長&#xff08;…

力扣1005:k次取反后最大化的數組和

力扣1005:k次取反后最大化的數組和題目思路代碼題目 給你一個整數數組 nums 和一個整數 k &#xff0c;按以下方法修改該數組&#xff1a; 選擇某個下標 i 并將 nums[i] 替換為 -nums[i] 。 重復這個過程恰好 k 次。可以多次選擇同一個下標 i 。 以這種方式修改數組后&…

國產數據庫管理工具 CloudDM 2.7.1.0 發布,OceanBase 等數據源支持復雜 SQL 脫敏數據

CloudDM 是 ClouGence 公司推出的面向團隊使用的數據庫管理工具&#xff0c;支持云上、云下、多云等多種環境&#xff0c;并且提供多達 23 種數據源的支持。CloudDM 還支持數據庫 DevOps CI/CD 功能&#xff0c;將用戶產品發布流程中數據庫發布和程序發布無縫串聯起來。 更新亮…

AI大模型實戰:用自然語言處理技術高效處理日常瑣事

引言在數字化時代&#xff0c;我們每天都會面對大量的瑣碎事務&#xff1a;整理會議記錄、處理名單數據、撰寫學習筆記等等。這些工作不僅耗時&#xff0c;而且容易出錯。幸運的是&#xff0c;隨著人工智能技術的發展&#xff0c;特別是大語言模型&#xff08;LLM&#xff09;的…

【spring security】為什么要使用userdetailservice

Spring Security UserDetailsService 深度解析&#xff1a;從401到認證成功的完整實現 &#x1f4cb; 目錄 問題背景Spring Security認證架構UserDetailsService的作用完整實現過程常見問題與解決方案最佳實踐 &#x1f3af; 問題背景 在開發B2B采購平臺時&#xff0c;我們…

機器學習中的數據處理技巧

一、Pandas處理丟失數據&#xff08;一&#xff09;判斷缺失值??isnull()函數??&#xff1a;用于判斷數據框&#xff08;DataFrame&#xff09;中各個單元格是否為空&#xff0c;可幫助我們識別出存在缺失數據的單元格位置。&#xff08;二&#xff09;處理缺失值的方法??…

田野科技“一張皮”,“AI+虛擬仿真”推動考古教學創新發展

文運同國運相牽&#xff0c;文脈同國脈相連。考古不僅關系到我們對古代文化的認知、發掘、保護、利用&#xff0c;關系到考古學學科體系、學術體系、話語體系的建設&#xff0c;更是關系到我國考古學的國際影響力&#xff0c;對增強世界不同地區古代文明的比較研究有著十分重要…

為什么我的UI界面會突然卡頓,失去響應

有操作都應是“非阻塞”的&#xff0c;以確保能隨時響應用戶的輸入。導致主線程阻塞的常見“元兇”主要涵蓋五個方面&#xff1a;主線程被“長時間”的同步計算所“阻塞”、單次渲染的界面節點過多或過于復雜、內存中存在“未釋放”的巨大對象或“內存泄漏”、響應了“高頻率”…

大規模IP輪換對網站的影響(服務器壓力、風控)

在當下的互聯網環境中&#xff0c;代理IP輪換已經成為爬蟲、SEO、數據采集等行業的常見手段。尤其是大規模數據抓取時&#xff0c;通過代理池實現IP輪換&#xff0c;可以有效避免因單一IP請求過于頻繁而被目標網站封禁。 然而&#xff0c;大規模IP輪換雖然對采集方有利&#xf…

4. STM32 vscode 環境, 官方插件

文章目錄1. 新建配置2. 安裝插件3. 新建工程1. 新建配置 新建vscode 配置&#xff0c; 因為stm32插件比較多&#xff0c; 避免和其他插件沖突。 激活環境&#xff1a; 這里可快速切換&#xff1a; 2. 安裝插件 可選擇安裝最新預覽版&#xff1a; 等待依賴安裝完成后重啟…

【動態規劃:路徑問題】最小路徑和 地下城游戲

最小路徑和&#xff08;medium&#xff09; 64. 最小路徑和 ? 給定一個包含非負整數的 m x n 網格 grid &#xff0c;請找出一條從左上角到右下角的路徑&#xff0c;使得路徑上的數字總和為最小。 ? **說明&#xff1a;**每次只能向下或者向右移動一步。 示例 1&#xff…