」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 棘手的 Python 問題

棘手的 Python 問題

發佈於2024-07-29
瀏覽:512

在過去的兩年裡,我一直使用Python作為我的主要程式語言。我認為這也許是「深入研究」的一個很好的理由,就像我在《棘手的 JavaScript 問題》中所做的那樣。接下來的一些問題是我在目前工作中需要處理的問題,其他問題則受到網路的啟發。

那麼你準備好讓你的頭腦大吃一驚了嗎(來自Python問題)?

Tricky Python Questions

問題

注意1! :每個問題都有答案和解釋(每個項目下面有連結)。
注意2! :對於每個問題,思考輸出是什麼。

問題1
exapmle_dict = dict()
exapmle_dict.a = "string"
print(exapmle_dict)

前往答案1

問題2
class Json:
    def __init__(self, *args, **kwargs):
        import json

    def print_dict_as_json(self, obj):
        print(json.dumps(obj))

example_json = Json()
example_json.print_dict_as_json({"a": "string"})

前往回答2

問題3
def myFun(arg1, arg3, **kwargs):
    for key, value in kwargs.items():
        print("%s == %s" % (key, value))


my_dict = {'arg1':1, 'arg2': 2}
myFun(**my_dict, arg3=3)

前往答案3

問題4
def add_to_all_1(arr):
    for i in range(len(arr)):
        arr[i]  =1

def my_func():
    arr = [1,2,3]
    add_to_all_1(arr)
    arr2 = arr
    print(arr2)

my_func()

前往回答4

答案

回答問題 1

如果你說:

{"a": "string"}

不幸的是,你錯了,答案是:

AttributeError: 'dict' object has no attribute 'a'

如果你像我一樣並且首先來自javascript,訪問字典(Javascript中的對象)不像Javascript中的點那樣,你只能通過[]訪問,並且在你想要設置“a”的鍵內。

回到問題1

回答問題2

如果你說:

{"a": "string"}

你又錯了,答案是:

...
NameError: name 'json' is not define

您可能知道 Python 中本地作用域和全域作用域之間的差異(如果不知道,您應該閱讀以下內容:Python 作用域)。 __init__ 是一個 函數 ,導入位於本地範圍內,因此它不知道什麼是 json。您可以透過像這樣全域導入來修復它:

import json

class Json:
    def print_dict_as_json(self, obj):
        print(json.dumps(obj))

example_json = Json()
example_json.print_dict_as_json({"a": "string"})

或更高級的方式:

class Json:
    import json as json
    def print_dict_as_json(self, obj):
        print(self.json.dumps(obj))

example_json = Json()
example_json.print_dict_as_json({"a": "string"})

您可以查看在類別中使用 import 以獲取更多詳細資訊。

回到問題2

回答問題 3

如果你說:

arg2 == 2

你是對的!在 Python 中,我們有 3 種傳遞參數的方法:

  • 根據論點本身:
def myFun(arg1):
   print(arg1)

myFun('arg1')
  • By *args - 參數清單或元組(允許我們將可變數量的非關鍵字參數傳遞給 Python 函數):
def myFun(*arg1):
   print(*arg1)

my_tuple = ('arg1', 'arg2')
myFun(my_tuple)
  • 透過 kwargs 可以傳遞 key=value 參數(kwargs 允許我們將可變數量的關鍵字參數傳遞給 Python 函數) - 就像問題中一樣。 如果您想了解有關該主題的更多信息,可以在這裡閱讀:freecodecamp - How to Use *args and **kwargs in Python

回到問題3

回答問題 4

答案是:

[2, 3, 4]

對於一些了解範圍和任務的人來說,這似乎是一個非常簡單的問題。對於那些不知道的人,python 將變數記憶體保存為引用,因此在這種情況下, arr 將指向記憶體中的引用-> 函數將更改值(但仍然是相同的引用) -> arr2 將取得arr的參考地址,但值被修改後。

回到問題4

感謝您閱讀本文。我希望你喜歡並學到新東西。如果您有任何疑問或建議,請留言。

版本聲明 本文轉載於:https://dev.to/tomeraitz/tricky-python-questions-45gg?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    從python 導入編解碼器 導入 text = codecs.decode('這狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#帶有表情符號 emoji_pattern = re.compile(“ [”...
    程式設計 發佈於2025-01-31
  • HTML格式標籤
    HTML格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2025-01-31
  • 如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    [2最後一行與數據集中的每個不同標識符關聯。考慮以下數據: 1 2014-02-01 kjkj 1 2014-03-11 ajskj 3 2014-02-01 sfdg 3 2014-06-12 fdsa 在(ID)上選擇DISTINC 來自the_table 按ID訂單,date desc;...
    程式設計 發佈於2025-01-31
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    [2 _post ['ss'];? > 的目的是從單擊提交按鈕時,文本框並顯示。但是,輸出保持空白。當方法=“ get”無縫工作時,方法=“ post”構成問題。 檢查action屬性:如果您正在刷新頁面,請將操作屬性設置為空字符串,例如] action ='&...
    程式設計 發佈於2025-01-31
  • 如何限制動態大小的父元素中元素的滾動範圍?
    如何限制動態大小的父元素中元素的滾動範圍?
    在交互式界面中實現垂直滾動元素的CSS高度限制 考慮一個佈局,其中我們具有與可滾動的映射div一起移動的subollable map div用戶的垂直滾動,同時保持其與固定側邊欄的對齊方式。但是,地圖的滾動無限期擴展,超過了視口的高度,阻止用戶訪問頁面頁腳。 可以限制地圖的滾動,我們可以利用CS...
    程式設計 發佈於2025-01-31
  • 如何從Google API中檢索最新的jQuery庫?
    如何從Google API中檢索最新的jQuery庫?
    從Google APIS 問題中提供的jQuery URL是版本1.2.6。對於檢索最新版本,以前有一種使用特定版本號的替代方法,它是使用以下語法: https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js(google hosted...
    程式設計 發佈於2025-01-31
  • 如何在整個HTML文檔中設計特定元素類型的第一個實例?
    如何在整個HTML文檔中設計特定元素類型的第一個實例?
    [2單獨使用CSS,整個HTML文檔可能是一個挑戰。 the:第一型偽級僅限於與其父元素中類型的第一個元素匹配。 以下CSS將使用添加的類樣式的第一個段落: }
    程式設計 發佈於2025-01-31
  • PHP陣列鍵值異常:了解07和08的好奇情況
    PHP陣列鍵值異常:了解07和08的好奇情況
    PHP數組鍵值問題,使用07&08 在給定數月的數組中,鍵值07和08呈現令人困惑的行為時,就會出現一個不尋常的問題。運行print_r($月份)返回意外結果:鍵“ 07”丟失,而鍵“ 08”分配給了9月的值。 此問題源於PHP對領先零的解釋。當一個數字帶有0(例如07或08)的前綴時,PHP...
    程式設計 發佈於2025-01-31
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決“一般錯誤:2006 MySQL 服務器已消失”介紹:將數據插入MySQL 數據庫有時會導致錯誤“一般錯誤:2006 MySQL 服務器已消失”。當與服務器的連接丟失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變量之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2025-01-31
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    在這里工作/},false); 不幸的是,答案是否。除非在Creation中存儲對處理程序的引用。 要解決此問題,請考慮將事件處理程序存儲在中心位置,例如頁面的主要對象,請考慮將事件處理程序存儲在中心位置,否則無法清理匿名事件處理程序。 。這允許在需要時輕鬆迭代和清潔處理程序。
    程式設計 發佈於2025-01-31
  • 如何使用PHP從XML文件中有效地檢索屬性值?
    如何使用PHP從XML文件中有效地檢索屬性值?
    從php 您的目標可能是檢索“ varnum”屬性值,其中提取數據的傳統方法可能會使您感到困惑。 - > attributes()為$ attributeName => $ attributeValue){ echo $ attributeName,'=“',$ a...
    程式設計 發佈於2025-01-31
  • 如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    [2 using the built-in CHAR_LENGTH() function.Difference between CHAR_LENGTH() and LENGTH()CHAR_LENGTH():返回字符串中字符數的數量,考慮多字節字符編碼(例如,UTF-8)。 此查詢將從指定的表中...
    程式設計 發佈於2025-01-31
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-01-31
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    解決此問題,我們採用了一個巧妙的CSS解決方案來解決問題: transform:translate:translate(-50%,-50%); height:100%; 高度:auto; 寬度:100%; //對於水平塊 ,使用絕對定位將圖像定位在中心,以object-fit:object-f...
    程式設計 發佈於2025-01-31
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    </main> <section> ,但无法使其正常工作,如您所见。任何洞察力都将不胜感激! display:grid; { position:sticky; top:1em; z-index:1 1 ; { { { pos...
    程式設計 發佈於2025-01-31

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3