验证输入的第一位数为4

时间:2019-05-04 23:25:52

标签: python function

已给我一个数字字符串,我必须创建一个函数来验证字符串中的第一个数字是否等于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" 

结果应该为false,但如果我将输入更改为4000-0000-0000,则结果应为true

5 个答案:

答案 0 :(得分:0)

在这里,这应该起作用:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".NewGameMenu">

    <SeekBar
        android:id="@+id/disSeek"
        style="@style/Widget.AppCompat.SeekBar.Discrete"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="300dp"
        android:max="10"
        android:progress="1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginBottom="44dp"
        android:text="Left side Text"
        android:textSize="20sp"
        app:layout_constraintBottom_toTopOf="@+id/disSeek"
        app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>

它使用var number ,将其转换为字符串,检查它是否以“ 4”开头,如果是,则返回true,否则返回false。

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

编辑:

如@melpomene所建议,此代码可以进一步简化:

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

答案 1 :(得分:0)

您应该将其与字符串"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比简单的比较要复杂得多。

答案 2 :(得分:0)

您可以遍历输入中的数字,因此无需指定要检查的对象的索引。但是,您不想遍历它。更改为:

def verify(number) : 
    if input[0] == '4':
      return True
    return False

应该可以。

答案 3 :(得分:0)

如果您需要验证确切的模式,但以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

答案 4 :(得分:0)

如果只想验证一位数字,请编写以下函数:

DECLARE @SOAPMES varchar(max)
SET @SOAPMES = ''
SET @SOAPMES = @SOAPMES + '<wsse:UsernameToken wsu:Id="Example-1">'
SET @SOAPMES = @SOAPMES + '   <wsse:Username> ... </wsse:Username>'
SET @SOAPMES = @SOAPMES + '   <wsse:Password Type="..."> ... </wsse:Password>'
SET @SOAPMES = @SOAPMES + '   <wsse:Nonce EncodingType="..."> ... </wsse:Nonce>'
SET @SOAPMES = @SOAPMES + '   <wsu:Created> ... </wsu:Created>'
SET @SOAPMES = @SOAPMES + '</wsse:UsernameToken>'

SELECT PATINDEX('%<%:Password%',@SOAPMES)

如果要创建更通用的功能,该功能可以识别第一个字符是否等于任何数字(0-9),请执行以下操作:

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