kzen.dev
  • Frågor
  • Taggar
  • Användare
Meddelanden
Belöningar
Registrering
När du har registrerat dig kommer du att få information om svar och kommentarer på dina frågor.
Logga in
Om du redan har ett konto loggar du in för att kontrollera nya meddelanden.
Det kommer att finnas belöningar för frågor, svar och kommentarer.
Mer
Källa
Redigera
 Hulk
Hulk
Question

Kontrollera om en variabel är ett heltal eller inte

Hur kontrollerar jag om en variabel är ett heltal?

826 2010-08-17T10:15:08+00:00 3
Léo  Léopold Hertz 준영
Léo Léopold Hertz 준영
Redigerad fråga 2012ör juni 2012 в 7:48
Programmering
python
Popular videos
Section 7
Section 7
för 9 år sedan
Section 1: More Comfortable
Section 1: More Comfortable
för 9 år sedan
Slumpa en lista siffror i Excel med slump, slump.mellan och slumpmatris
Slumpa en lista siffror i Excel med slump, slump.mellan och slumpmatris
för 2 år sedan
How To Check If A Variable Is An Integer Or Not In Python?
How To Check If A Variable Is An Integer Or Not In Python?
för 2 år sedan
Python - Function to Check If input Is An Integer or String | Python | Data-Structure | Jupyter |
Python - Function to Check If input Is An Integer or String | Python | Data-Structure | Jupyter |
för 3 år sedan
Check if Number is Integer in R (3 Examples) | Test for Whole Numbers | round & all.equal Functions
Check if Number is Integer in R (3 Examples) | Test for Whole Numbers | round & all.equal Functions
för 3 år sedan
Exempel på lagrade procedurer - Föreläsning 32 (SQL)
Exempel på lagrade procedurer - Föreläsning 32 (SQL)
för 2 år sedan
3. Metoder, datatyper och mer om parametrar (Kursfilm, OOP Java)
3. Metoder, datatyper och mer om parametrar (Kursfilm, OOP Java)
för 3 år sedan
KT8 Genomgång
KT8 Genomgång
för 2 år sedan
Python - Grunder - Del 2 - Villkor och loopar
Python - Grunder - Del 2 - Villkor och loopar
för 4 år sedan
Решите уравнение в целых числах: 1!+2!+⋯+x!=y^2
Решите уравнение в целых числах: 1!+2!+⋯+x!=y^2
för 2 år sedan
2.2-delmängder av R
2.2-delmängder av R
för 3 år sedan
8. En enkel liten miniräknare (BlueJ)
8. En enkel liten miniräknare (BlueJ)
för 3 år sedan
3. Klasser, objekt och metoder (BlueJ)
3. Klasser, objekt och metoder (BlueJ)
för 3 år sedan
Lagrade procedurer - Föreläsning 31 (SQL)
Lagrade procedurer - Föreläsning 31 (SQL)
för 2 år sedan
7. If satser och Scanner objekt (BlueJ)
7. If satser och Scanner objekt (BlueJ)
för 3 år sedan
Curso Java 03 - Variables @JoseCodFacilito
Curso Java 03 - Variables @JoseCodFacilito
för 8 år sedan
Terminologigenomgång klassen Person
Terminologigenomgång klassen Person
för 2 år sedan
2. Metoder, parametrar och datatyper (Kursfilm, OOP Java)
2. Metoder, parametrar och datatyper (Kursfilm, OOP Java)
för 3 år sedan
Deep Reinforcement Learning - Kalle Prorok
Deep Reinforcement Learning - Kalle Prorok
för 3 år sedan
Checking whether a variable is an integer or not [python]
Checking whether a variable is an integer or not [python]
för 2 år sedan
What are variables, expressions, and equations? | Introduction to algebra | Algebra I | Khan Academy
What are variables, expressions, and equations? | Introduction to algebra | Algebra I | Khan Academy
för 11 år sedan
Graphing inequalities and checking solutions example | Algebra I | Khan Academy
Graphing inequalities and checking solutions example | Algebra I | Khan Academy
för 13 år sedan
1DV021 - F01 - Variabler, typer och operatorer (Hel version)
1DV021 - F01 - Variabler, typer och operatorer (Hel version)
för 8 år sedan
nonswitch
nonswitch
för 9 år sedan
How to Check if variable is integer or string in Python
How to Check if variable is integer or string in Python
för 4 år sedan
5. Författaren och boken - Klasser, objekt och metoder (BlueJ)
5. Författaren och boken - Klasser, objekt och metoder (BlueJ)
för 3 år sedan
« Föregående
Nästa »
Den här frågan har 1 svar på engelska, för att läsa dem logga in på ditt konto.
Solution / Answer
 Katriel
Katriel
2010ör augusti 2010 в 10:18
2010-08-17T10:18:16+00:00
Mer
Källa
Redigera
#10896328

Om du behöver göra detta, gör följande

isinstance(<var>, int)

såvida du inte använder Python 2.x, i vilket fall du vill ha

isinstance(<var>, (int, long))

Använd inte type. Det är nästan aldrig rätt svar i Python, eftersom det blockerar all flexibilitet hos polymorfism. Om du till exempel underklassar int ska din nya klass registrera sig som en int, vilket type inte gör:

class Spam(int): pass
x = Spam(0)
type(x) == int # False
isinstance(x, int) # True

Detta följer Pythons starka polymorfism: du bör tillåta alla objekt som beter sig som en int, istället för att kräva att det ska vara en int.

BUT

Den klassiska Python-mentaliteten är dock att det är lättare att be om förlåtelse än om lov. Med andra ord, kontrollera inte om x är ett heltal; anta att det är det och fånga upp undantaget om det inte är det:

try:
    x += 1
except TypeError:
    ...

Denna mentalitet håller långsamt på att tas över av användningen av abstrakta basklasser, som låter dig registrera exakt vilka egenskaper ditt objekt ska ha (addera? multiplicera? fördubbla?) genom att låta det ärva från en speciellt konstruerad klass. Det skulle vara den bästa lösningen, eftersom den tillåter exakt dessa objekt med de nödvändiga och tillräckliga attributen, men du måste läsa dokumentationen om hur du använder den.

 cs95
cs95
Redigerat svar 2017ör november 2017 в 11:58
abc — Abstract Base Classes &#8212; Python 3.10.7 documentation
docs.python.org
988
0
Artificial intelligence to parse product page
productapi.dev
Matt Joiner
Matt Joiner
2010ör augusti 2010 в 10:19
2010-08-17T10:19:03+00:00
Mer
Källa
Redigera
#10896329
>>> isinstance(3, int)
True

Se här för mer information.

Observera att detta inte hjälper om du letar efter int-liknande attribut. I det fallet kanske du också vill kontrollera om det finns long:

>>> isinstance(3L, (long, int))
True

Jag har sett kontroller av det här slaget mot en array/index-typ i Pythons källkod, men jag tror inte att det är synligt utanför C.

Token SO-svar: Är du säker på att du ska kontrollera dess typ? Antingen lämnar du inte över en typ som du inte kan hantera, eller så försöker du inte överlista dina potentiella kodåteranvändare, de kan ha en bra anledning att inte lämna över en int till din funktion.

Matt Joiner
Matt Joiner
Redigerat svar 2010ör augusti 2010 в 10:27
Built-in Functions &#8212; Python 3.10.7 documentation
docs.python.org
36
0
Artificial intelligence to parse product page
productapi.dev
Jungle Hunter
Jungle Hunter
2010ör augusti 2010 в 10:16
2010-08-17T10:16:57+00:00
Mer
Källa
Redigera
#10896327

Jag hittade en [relaterad fråga] (https://stackoverflow.com/questions/402504/how-to-determine-the-variable-type-in-python) här på SO själv.

Python-utvecklare föredrar att inte kontrollera typer utan att göra en typspecifik operation och fånga upp ett TypeError-undantag. Men om du inte känner till typen har du följande.

>>> i = 12345
>>> type(i)
<type 'int'>
>>> type(i) is int
True
 Community
Community
Redigerat svar 2017ör maj 2017 в 11:55
8
0
Lägg till en fråga
Kategorier
Alla
Teknik
Kultur / fritid
Livet / Konst
Vetenskap
Professionell
Företag
Användare
Alla
Ny
Populära
1
Анна Литвиненко
Registrerad för 1 dag sedan
2
Inessa bu
Registrerad för 1 månad sedan
3
Denis Babushkin
Registrerad för 1 månad sedan
4
asakuno asakuno
Registrerad för 1 månad sedan
5
aldo salerno
Registrerad för 1 månad sedan
Artificial intelligence to parse product page
productapi.dev
BG
DA
DE
EL
ES
FI
FR
HU
ID
IT
JA
NL
NO
PL
PT
RO
RU
SV
TR
ZH
© kzen.dev 2023
Källa
stackoverflow.com
under licens cc by-sa 3.0 med angivande av