убедитесь, что первая цифра ввода 4 - PullRequest
0 голосов
/ 05 мая 2019

Мне дали строку цифр, и я должен создать функцию, которая проверяет, равно ли первое число в строке 4.

def verify(number) : 
  int (input[0],10)
  for number in input:
    if input [0] == 4:
      return True
    elif input [0] != 4:
      return False

input = "5000-0000-0000" 

Результат должен быть ложным, но должен вывести true, если я изменю ввод на 4000-0000-0000

Ответы [ 4 ]

0 голосов
/ 05 мая 2019

Если вы хотите проверить только одну цифру, напишите следующую функцию:

def verify_number(text):
    has_4 = (text[0] == 4) 
    if has_4:
        return True
    return False

>>> verify_number("5000-0000-0000")
False

>>> verify_number("4000-0000-0000")
True

Если вы хотите создать более обобщающую функцию, которая определяет, равен ли первый символ какому-либо числу (0-9), просто выполните:

def verify_number(text, number):
    has_n = (text[0] == number) 
    if has_n:
        return True
    return False

>>> verify_number("5000-0000-0000", "5")
True

>>> verify_number("4000-0000-0000", "4")
True
0 голосов
/ 05 мая 2019

Вы должны сравнить со строкой "4".Кроме того, сравнение в любом случае возвращает логическое значение, поэтому вы можете избавиться от операторов if:

def verify(number):
    if not number:
        return False
    return number[0] == "4"

Обратите внимание, что вы должны проверять длину строки с помощью not number, чтобы избежать ошибок при пустой строкепередается.Другой вариант - startswith:

def verify(number):
    return number.startswith("4")

В этом случае проверка не требуется.Однако этот подход имеет тенденцию быть немного медленнее, потому что startswith является более сложной операцией, чем простое сравнение.

0 голосов
/ 05 мая 2019

Если вам нужно проверить точный шаблон, но начиная с 4, то что-то вроде этого:

def verify(s) :
  from re import match
  if match('^4[0-9]{3}\-[0-9]{4}\-[0-9]{4}$',s): return True
  return False

print(verify("5000-0000-0000"))
print(verify("4000-0000-0000"))

или, как было указано в комментариях:

if match('^4\d{3}\-\d{4}\-\d{4}$',s): return True

0 голосов
/ 05 мая 2019

Здесь это должно работать:

def verify(number):
    number = str(number)
    if number.startswith("4"):
        return True
    else:
        return False

Он принимает переменную число , преобразует его в строку, проверяет, начинается ли он с "4", и если он это делает, возвращает истину, в противном случае он возвращает ложь.

def verify(number):
    number = str(number)               #convert number to string
    if number.startswith("4"):         #check if it starts with 4
        return True                    # return True if it does
    else:
        return False                   #otherwise return false

EDIT:

Как и предположил @melpomene, этот код может быть еще более упрощен:

def verify(number):
    return str(number).startswith("4")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...