簡體   English   中英

Python 字符串中的真/假

[英]Python True/False in string

如何制作 function 當用戶名也通過時會發生什么。不取決於某些是大寫字母還是小寫字母

當用戶名也通過時,如何創建一個函數將是真實的..不取決於某些是大字母還是小寫字母

username = "peter123"
password = "peTeR"

def check(username, password):
    username = username.lower()
    password = password.lower()
    return password in username

print(check(username, password))

有幾種方法可以解決這個問題,下面列出:

  1. In 運算符 我們可以在這里“in”運算符。 如果 substring 在主字符串中,則帶有字符串的“in”運算符返回 true,否則返回 false。 例如:一。 "xabcd" 中的 "abc" => 真

灣。 "xabdcd" 中的 "abc" => 假

def userpass(username, password):
    return password.lower() in username.lower() 

userpass("pEter32", "PETER")
  1. Find 方法:Find 方法返回一個索引,如果 substring 存在於字符串中,否則返回 -1

     def userpass(username, password): index = username.lower().find(password.lower()) if index>=0: return True else: return False userpass("pEter32", "PETER")
  2. 索引方法 這與 find 方法相同,但如果 str 未找到則引發異常。

     def userpass(username, password): try: index = username.lower().index(password.lower()) return True except: return False userpass("pEter32", "PETER")
lambda name, password: password.lower() in name.lower()

在 python3 的 repl 中:

>>> pairs = (('peter123', 'PeTeR'),
...          ('123Peter', 'PETER'),
...          ('123pEtEr123', 'non-peter'))

>>> [(lambda nam, pwd: pwd.lower() in nam.lower())(n, p) for n, p in pairs]
[True, True, False]

(或者干脆

>>> [password.lower() in name.lower() for name, password in pairs]
[True, True, False]

)

嘗試使用這個:

import re
def nameInPassword(userName, password):
    flag = re.search(userName, password, re.IGNORECASE)
    if flag == None:
        return False
    else:
        return True

print(nameInPassword('Peter', '123') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM