回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这是我尝试搜索用户名时遇到的错误:</p>
<pre class="lang-none prettyprint-override"><code>[['tom@gmail.com', 'Password1'], ['harry@gmail.com', 'Password2'], ['jake@gmail.com', 'Password3']]
Please enter a usernametom@gmail.com
Traceback (most recent call last):
File "C:\Users\TomEllison22\Documents\Work\A Levels\Computing\guesspassword2 (2).py", line 88, in <module>
login=login_user(MY_PASSWORD)
File "C:\Users\TomEllison22\Documents\Work\A Levels\Computing\guesspassword2 (2).py", line 68, in login_user
index = BinarySearch(MY_PASSWORD,username,Last,ItemSought)
File "C:\Users\TomEllison22\Documents\Work\A Levels\Computing\TEST_BINARY.py", line 19, in BinarySearch
Midpoint = (First + Last) // 2
TypeError: Can't convert 'int' object to str implicitly
</code></pre>
<p>如何让它正确搜索并找到我输入的用户名?你知道吗</p>
<pre><code>def login_user(MY_PASSWORD):
MY_PASSWORD = BubbleSort(MY_PASSWORD)
while True:
username = input("Please enter a username")
ItemSought=username
if validateEmail(username):
print("Not a valid email address")
continue
Last = len(MY_PASSWORD)-1
index = BinarySearch(MY_PASSWORD,username,Last,ItemSought)
if index > -1:
break
else:
print("User doesnt exist")
while True:
print()
password = input("Password:")
print()
if LengthCheck(password,5):
print("Password too short")
continue
else:
print("Password correct length")
def BubbleSort(MY_PASSWORD):
NoSwaps = 1
N = len(MY_PASSWORD)
while NoSwaps == 1:
Count = 1
NoSwaps = 0
for Count in range(N-1):
if MY_PASSWORD[Count] > MY_PASSWORD[Count+1]:
temp = MY_PASSWORD[Count]
MY_PASSWORD[Count] = MY_PASSWORD[Count+1]
MY_PASSWORD[Count+1]=temp
NoSwaps=1
return MY_PASSWORD
def BinarySearch(List,First,Last,ItemSought):
ItemFound = False
SearchFailed = False
Midpoint = (First + Last) // 2
#print('midpoint',Midpoint)
if List[Midpoint] == ItemSought:
ItemFound = True
else:
if First >= Last:
SearchFailed = True
else:
if List[Midpoint] < ItemSought:
BinarySearch(List,Midpoint + 1,Last,ItemSought)
else:
BinarySearch(List,First,Midpoint-1,ItemSought)
if SearchFailed:
print("searchfailed")
if ItemFound:
print("itemfound")
if __name__ == "__main__":
List=["Tom","Harry","Sam","Joe"]
List = BubbleSort(List)
ItemSought=(input("Enter a username"))
First = 0
Last = len(List)-1
print(List)#,First,Last,ItemSought)
BinarySearch(List,First,Last,ItemSought)
</code></pre>