Hướng dẫn how do you check if a string is negative in python? - làm thế nào để bạn kiểm tra xem một chuỗi là âm trong python?

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang cố gắng viết một cái gì đó kiểm tra xem một chuỗi là số hoặc âm. Nếu đó là một số (dương hoặc âm), nó sẽ được truyền qua int (). Thật không may, isDigit () sẽ không nhận ra nó là một số khi "-" được bao gồm.

Đây là những gì tôi có cho đến nay:

def contestTest():
# Neutral point for struggle/tug of war/contest
x = 0

while -5 < x < 5:
    print "Type desired amount of damage."
    print x
    choice = raw_input("> ")

    if choice.isdigit():
        y = int(choice)
        x += y
    else:
        print "Invalid input."

if -5 >= x:
    print "x is low. Loss."
    print x
elif 5 <= x:
    print "x is high. Win."
    print x
else:
    print "Something went wrong."
    print x

Giải pháp duy nhất tôi có thể nghĩ đến là một loạt các tuyên bố riêng biệt, phức tạp mà tôi có thể tránh xa trong một chức năng riêng biệt để làm cho nó trông đẹp hơn. Tôi sẽ biết ơn bất kỳ sự giúp đỡ nào!

Khi được hỏi ngày 26 tháng 5 năm 2016 lúc 22:59May 26, 2016 at 22:59

Hướng dẫn how do you check if a string is negative in python? - làm thế nào để bạn kiểm tra xem một chuỗi là âm trong python?

1

Bạn có thể dễ dàng xóa các ký tự khỏi bên trái trước, như vậy:

choice.lstrip('-+').isdigit()

Tuy nhiên, có lẽ sẽ tốt hơn nếu xử lý các ngoại lệ từ đầu vào không hợp lệ: thay vào đó:

print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y

Đã trả lời ngày 26 tháng 5 năm 2016 lúc 23:00May 26, 2016 at 23:00

Hướng dẫn how do you check if a string is negative in python? - làm thế nào để bạn kiểm tra xem một chuỗi là âm trong python?

Alex Hallalex HallAlex Hall

34K5 Huy hiệu vàng50 Huy hiệu bạc83 Huy hiệu Đồng5 gold badges50 silver badges83 bronze badges

Thay vì kiểm tra xem bạn có thể chuyển đổi đầu vào thành một số, bạn chỉ có thể thử chuyển đổi và làm một cái gì đó khác nếu nó thất bại:

choice = raw_input("> ")

try:
    y = int(choice)
    x += y
except ValueError:
    print "Invalid input."

Đã trả lời ngày 26 tháng 5 năm 2016 lúc 23:10May 26, 2016 at 23:10

Syntonsyntonymsyntonym

6.8262 Huy hiệu vàng27 Huy hiệu bạc44 Huy hiệu đồng2 gold badges27 silver badges44 bronze badges

Bạn có thể giải quyết điều này bằng cách sử dụng float(str). Float sẽ trả về giá trịerRor nếu nó không phải là một số. Nếu bạn chỉ xử lý các số nguyên, bạn có thể sử dụng int(str)

Vì vậy, thay vì làm

if choise.isdigit():
   #operation
else:
   #operation

Bạn co thể thử

try:
    x = float(raw_input)
except ValueError:
    print ("What you entered is not a number")

Hãy thay thế float bằng

choice.lstrip('-+').isdigit()
0 và cho tôi biết nếu nó hoạt động! Tôi đã không tự kiểm tra nó.

Chỉnh sửa: Tôi cũng chỉ thấy điều này trên tài liệu của Python (2.7.11) tại đây: I just saw this on Python's documentation as well (2.7.11) here

Đã trả lời ngày 26 tháng 5 năm 2016 lúc 23:13May 26, 2016 at 23:13

Hướng dẫn how do you check if a string is negative in python? - làm thế nào để bạn kiểm tra xem một chuỗi là âm trong python?

Điều này không đơn giản hơn?

def is_negative_int(value: str) -> bool:
    """
    ref:
        - https://www.kite.com/python/answers/how-to-check-if-a-string-represents-an-integer-in-python#:~:text=To%20check%20for%20positive%20integers,rest%20must%20represent%20an%20integer.
        - https://stackoverflow.com/questions/37472361/how-do-i-check-if-a-string-is-a-negative-number-before-passing-it-through-int
    """
    if value == "":
        return False
    is_positive_integer: bool = value.isdigit()
    if is_positive_integer:
        return True
    else:
        is_negative_integer: bool = value.startswith("-") and value[1:].isdigit()
        is_integer: bool = is_positive_integer or is_negative_integer
        return is_integer

Đã trả lời ngày 26 tháng 11 năm 2021 lúc 18:40Nov 26, 2021 at 18:40

Hướng dẫn how do you check if a string is negative in python? - làm thế nào để bạn kiểm tra xem một chuỗi là âm trong python?

Charlie Parkercharlie ParkerCharlie Parker

10.3K42 Huy hiệu vàng162 Huy hiệu bạc273 Huy hiệu Đồng42 gold badges162 silver badges273 bronze badges

Biểu thức toán học không chỉ bao gồm một thành phần hoặc phần tử và trong Python, các dấu hiệu cộng và trừ có thể được sử dụng như một phần tử được ghép nối với giá trị để trả về danh tính của giá trị ( +) hoặc thay đổi dấu hiệu của giá trị ( -) . Với giá trị âm, dấu cộng trả về cùng giá trị âm.

Làm thế nào để bạn kiểm tra xem một chuỗi có phải là một số nguyên dương không?

Để kiểm tra các số nguyên dương, hãy gọi str.isDigit () để trả về true nếu str chỉ chứa các chữ số và sai. Để kiểm tra các số nguyên âm, ký tự đầu tiên phải là - và phần còn lại phải đại diện cho một số nguyên.

defisNumeric(s):isNumeric(s):

    try:try:

        float(s)float(s)

        returnTruereturnTrue

    exceptValueError:except ValueError:

        returnFalsereturnFalse

if__name__=='__main__':__name__ =='__main__':

    s="100"s="100"

& nbsp; & nbsp; & nbsp; & nbsp;print(isNumeric(s))    # True

Tải xuống & nbsp; & nbsp; mã

& nbsp; Lưu ý rằng hàm

choice.lstrip('-+').isdigit()
2 chấp nhận
choice.lstrip('-+').isdigit()
7 (không phải là một số) hoặc vô cực dương hoặc âm làm đối số chuỗi.
Note that the
choice.lstrip('-+').isdigit()
2 function accepts a
choice.lstrip('-+').isdigit()
7 (not-a-number) or a positive or negative infinity as the string argument.

2. Sử dụng chức năng choice.lstrip('-+').isdigit() 8

Ngoài ra, bạn có thể sử dụng chức năng

choice.lstrip('-+').isdigit()
8 để chuyển đổi chuỗi thành số phức. Giống như hàm
choice.lstrip('-+').isdigit()
1, nó chấp nhận
choice.lstrip('-+').isdigit()
7 (không phải là một số) hoặc vô cực dương hoặc âm là đối số chuỗi và trả về
print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
2.

defisNumeric(s):isNumeric(s):

    try:try:

        complex(s)complex(s)

        returnTruereturnTrue

    exceptValueError:except ValueError:

        returnFalsereturnFalse

if__name__=='__main__':__name__ =='__main__':

    s="100"s="100"

& nbsp; & nbsp; & nbsp; & nbsp;print(isNumeric(s))    # True

Tải xuống & nbsp; & nbsp; mã

3. Sử dụng hàm print x while True: choice = raw_input("> ") try: y = int(choice) break except ValueError: print "Invalid input." x += y 3

Một tùy chọn khác là sử dụng hàm

print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
4, trả về
print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
2 khi chuỗi đã cho là một số nguyên dương. Tuy nhiên, nó trả về
print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
6 khi chuỗi là số float hoặc số âm.

defisNumeric(s):isNumeric(s):

    returns.isdigit()return s.isdigit()

if__name__=='__main__':__name__== '__main__':

    s="100"s="100"

& nbsp; & nbsp; & nbsp; & nbsp;print(isNumeric(s))    # True

Tải xuống & nbsp; & nbsp; mã

3. Sử dụng hàm

print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
3

Một tùy chọn khác là sử dụng hàm

print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
4, trả về
print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
2 khi chuỗi đã cho là một số nguyên dương. Tuy nhiên, nó trả về
print x
while True:
    choice = raw_input("> ")
    try:
        y = int(choice)
        break
    except ValueError:
        print "Invalid input."
x += y
6 khi chuỗi là số float hoặc số âm.

Đó là tất cả về việc xác định xem một chuỗi nhất định có phải là số trong Python hay không.

Cảm ơn vì đã đọc. :)


Làm thế nào để bạn kiểm tra xem một chuỗi là số âm trong Python?

Sử dụng hàm isDigit () Một tùy chọn khác là sử dụng str. hàm isDigit (), trả về true khi chuỗi đã cho là một số nguyên dương. Tuy nhiên, nó trả về sai khi chuỗi là số float hoặc số âm. Đó là tất cả về việc xác định xem một chuỗi nhất định có phải là số trong Python hay không. Another option is to use the str. isdigit() function, which returns True when the given string is a positive integer. However, it returns False when the string is a float number or a negative number. That's all about determining whether a given string is numeric in Python.

Làm thế nào để bạn thể hiện một tiêu cực trong Python?

Biểu thức toán học không chỉ bao gồm một thành phần hoặc phần tử và trong Python, các dấu hiệu cộng và trừ có thể được sử dụng như một phần tử được ghép nối với giá trị để trả về danh tính của giá trị ( +) hoặc thay đổi dấu hiệu của giá trị ( -).Với giá trị âm, dấu cộng trả về cùng giá trị âm.With a negative value the plus sign returns the same negative value.

Làm thế nào để bạn kiểm tra xem một chuỗi có phải là một số nguyên dương không?

Để kiểm tra các số nguyên dương, hãy gọi str.isDigit () để trả về true nếu str chỉ chứa các chữ số và sai.Để kiểm tra các số nguyên âm, ký tự đầu tiên phải là - và phần còn lại phải đại diện cho một số nguyên.call str. isdigit() to return True if str contains only digits and False otherwise. To check for negative integers, the first character must be - and the rest must represent an integer.

Làm thế nào để bạn biết nếu một chuỗi là dương?

Để kiểm tra xem một chuỗi có phải là số nguyên dương không: chuyển đổi chuỗi thành một số và chuyển nó sang phương thức số.isinteger ().Phương thức trả về đúng nếu giá trị được cung cấp là một số nguyên và sai nếu không.Convert the string to a number and pass it to the Number. isInteger() method. The method returns true if the provided value is an integer and false otherwise.