簡體   English   中英

Python:為什么將int與字符串進行比較的等式不會引發錯誤?

[英]Python: Why does equality comparing an int with a string not throw an error?

在Python 3中,嘗試對字符串和int(例如1 > "1" )進行排序會引發TypeError。 為什么比較字符串和int的相等性不會拋出錯誤? (例如1=="1" )將字符串與int進行比較有什么意義? 為什么JavaScript和SQL采用不同的方法?

相關: Python如何比較字符串和int?

例如,這允許您擁有包含混合類型鍵的字典。

如果您無法比較1"1"的相等性,則無法將它們用作同一字典中的鍵。

事實上,你可以比較它們,它們總是比較不平等

對象不必具有相同的類型。 如果兩者都是數字,則將它們轉換為通用類型。 否則,不同類型的對象總是比較不相等,並且一致但是任意地排序。

排序在非可比較對象上引發TypeError的原因是表示沒有合理的答案 ,而不是任何關於它是否有用的預測。 允許一個平等的測試是明智的這一邏輯,insofaras 回答“是兩個不可比較的對象平等的嗎?” (他們不是)。 參見,例如, http//www.gossamer-threads.com/lists/python/dev/919516

語言打字的優缺點

語言的輸入可能是強弱的(松散的)。 更強的打字語言在同一操作中可以操作的類型越少。 語言輸入的弱點和強度沒有確切的閾值 - 某些語言可能比其他語言具有更強的類型,而弱於另一種語言。 Python打字比JS強大得多

==實現更少弱類型的操作。 它可以比較不同的類型,但您需要具有相同類型的兩個值才有機會獲得True a == b #true表示ab是相同類型的對象,並且具有相等的值。 > <Python 3中實現為強類型操作,無法在不同類型上執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM