Hướng dẫn how to check if input is a letter in python - cách kiểm tra xem đầu vào có phải là một chữ cái trong python không

Làm thế nào tôi có thể kiểm tra xem đầu vào là một chữ cái hoặc ký tự trong Python?

Đầu vào phải là số lượng người dùng muốn kiểm tra. Sau đó, chương trình nên kiểm tra xem đầu vào được đưa ra bởi người dùng thuộc về chuỗi Tribonacci (0,1,2 được giao trong tác vụ) và trong trường hợp người dùng nhập một cái gì đó khác với số nguyên, chương trình sẽ tiếp tục chạy.

n = int(input("How many numbers do you want to check:"))
x = 0

def tribonnaci(n):
    sequence = (0, 1, 2, 3)
    a, b, c, d = sequence
    while n > d:
        d = a + b + c
        a = b
        b = c
        c = d
    return d

while x < n:
    num = input("Number to check:")
    if num == "":
        print("FAIL. Give number:")
    elif int(num) <= -1:
        print(num+"\tFAIL. Number is minus")
    elif int(num) == 0:
        print(num+"\tYES")
    elif int(num) == 1:
        print(num+"\tYES")
    elif int(num) == 2:
        print(num+"\tYES")
    else:
        if tribonnaci(int(num)) == int(num):
            print(num+"\tYES")
        else:
            print(num+"\tNO")
    x = x + 1

Đã hỏi ngày 25 tháng 11 năm 2019 lúc 16:23Nov 25, 2019 at 16:23

Hướng dẫn how to check if input is a letter in python - cách kiểm tra xem đầu vào có phải là một chữ cái trong python không

1

Bạn có thể sử dụng hàm num.isNumeric () sẽ trả về bạn "true" nếu đầu vào là số và "sai" nếu đầu vào không phải là số.num.isnumeric() function that will return You "True" if input is number and "False" if input is not number.

>>> x = raw_input()
12345
>>> x.isdigit()
True

Bạn cũng có thể sử dụng thử/bắt:

try:
   val = int(num)
except ValueError:
   print("Not an int!")

Đã trả lời ngày 25 tháng 11 năm 2019 lúc 16:36Nov 25, 2019 at 16:36

Hướng dẫn how to check if input is a letter in python - cách kiểm tra xem đầu vào có phải là một chữ cái trong python không

0

Đối với việc bạn sử dụng, sử dụng phương thức .isdigit() là những gì bạn muốn.

Đối với một chuỗi đã cho, chẳng hạn như đầu vào, bạn có thể gọi string.isdigit() sẽ trả về True nếu chuỗi chỉ được tạo thành từ các số và

>>> x = raw_input()
12345
>>> x.isdigit()
True
0 nếu chuỗi được tạo thành từ bất cứ thứ gì khác hoặc trống.

Để xác thực, bạn có thể sử dụng câu lệnh

>>> x = raw_input()
12345
>>> x.isdigit()
True
1 để kiểm tra xem đầu vào có phải là số hay không.

n = input("Enter a number")
if n.isdigit():
    # rest of program
else:
    # ask for input again

Tôi khuyên bạn nên thực hiện xác thực này khi người dùng đang nhập các số sẽ được kiểm tra. Là một chuỗi trống

>>> x = raw_input()
12345
>>> x.isdigit()
True
2 khiến .isdigit() trả về
>>> x = raw_input()
12345
>>> x.isdigit()
True
0, bạn sẽ không cần một trường hợp xác thực riêng cho nó.

Nếu bạn muốn biết thêm về các phương thức chuỗi, bạn có thể xem https://www.quackit.com/python/reference/python_3_string_methods.cfm cung cấp thông tin về từng phương thức và đưa ra ví dụ về từng phương thức.

Đã trả lời ngày 25 tháng 11 năm 2019 lúc 16:49Nov 25, 2019 at 16:49

Câu hỏi này tiếp tục xuất hiện ở dạng này hay hình thức khác. Đây là một phản ứng rộng hơn.

## Code to check if user input is letter, integer, float or string. 

#Prompting user for input.
userInput = input("Please enter a number, character or string: ") 
while not userInput:
    userInput = input("Input cannot be empty. Please enter a number, character or string: ")

#Creating function to check user's input
inputType = '' #See: https://stackoverflow.com/questions/53584768/python-change-how-do-i-make-local-variable-global
def inputType():
    global inputType
    
def typeCheck():
    global inputType
    try:
        float(userInput) #First check for numeric. If this trips, program will move to except.
        if float(userInput).is_integer() == True: #Checking if integer
            inputType = 'an integer' 
        else:
            inputType = 'a float' #Note: n.0 is considered an integer, not float
    except:
        if len(userInput) == 1: #Strictly speaking, this is not really required. 
            if userInput.isalpha() == True:
                inputType = 'a letter'
            else:
                inputType = 'a special character'
        else:
            inputLength = len(userInput)
            if userInput.isalpha() == True:
                inputType = 'a character string of length ' + str(inputLength)
            elif userInput.isalnum() == True:
                inputType = 'an alphanumeric string of length ' + str(inputLength)
            else:
                inputType = 'a string of length ' + str(inputLength) + ' with at least one special character'

#Calling function         
typeCheck()
print(f"Your input, '{userInput}', is {inputType}.")

Đã trả lời ngày 3 tháng 8 năm 2020 lúc 8:51Aug 3, 2020 at 8:51

user702432user702432user702432

11.5K19 Huy hiệu vàng53 Huy hiệu bạc69 Huy hiệu đồng19 gold badges53 silver badges69 bronze badges

Nếu sử dụng int, như tôi, thì tôi chỉ cần kiểm tra xem nó có> 0 không; Vì vậy, 0 cũng sẽ thất bại. Ở đây tôi kiểm tra xem nó có> -1 không vì nó nằm trong một câu lệnh IF và tôi không muốn 0 thất bại.

try:
    if not int(data[find]) > -1:
        raise(ValueError('This is not-a-number'))
except:
    return

Chỉ là một lời nhắc nhở.

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

Bạn có thể kiểm tra loại đầu vào theo cách như thế này:

num = eval(input("Number to check:"))
if isinstance(num, int):
    if num < 0:
        print(num+"\tFAIL. Number is minus")
    elif tribonnaci(num) == num: # it would be clean if this function also checks for the initial correct answers. 
        print(num + '\tYES')
    else:
        print(num + '\NO')
else:
    print('FAIL, give number')

Và nếu không phải là một int đã được đưa ra thì nó là sai nên bạn có thể nói rằng đầu vào là sai. Bạn có thể làm tương tự cho n = int ban đầu của mình (đầu vào ("Bạn muốn kiểm tra bao nhiêu số:")), điều này sẽ thất bại nếu nó không thể đánh giá thành công và làm hỏng chương trình của bạn.

Đã trả lời ngày 25 tháng 11 năm 2019 lúc 16:35Nov 25, 2019 at 16:35

MarcmarcMarc

1.3696 huy hiệu bạc12 Huy hiệu đồng6 silver badges12 bronze badges

5