1 def analyzeAge( age ): 2 if age < 21: 3 print("You are a child") 4 if age > 21: 5 print("You are an adult") 6 else: #Handle all cases were 'age' is negative 7 print ("The age must be a positive integer!") 8 9 analyzeAge( 18 ) #Calling the function
You are a child
The age must be a positive integer!
上一个单元格出错,一次出现了两个输出。因为它判断第一个IF是满足,有一个输出,判断第二个IF不满足,就走入了ELSE,所以有了第二个输出。
def analyzeAge( age ): if age < 21: print("You are a child") elif age > 21: print("You are an adult") else: #Handle all cases were 'age' is negative print ("The age must be a positive integer!") analyzeAge( 18 ) #Calling the function
You are a child
这次,第一个IF满足之后,就不看ELIF后的内容了。
704二分查找
要点1:
在定义right的值时,要写right = len(nums)-1,比如数组有6个元素,但是5是最大的下标。
要点2:
为什么不写成如下形式?
if nums[middle] == target : return middle
因为最后是[3,5]之间找到4。通过不断缩小这个闭区间(closed inrerval),找到它。
from typing import List class Solution: def search(self, nums: List[int], target: int) -> int: left = 0 right = len(nums) -1 while(left <= right ): middle = ( left + right ) // 2 if ( nums[middle] < target ): left = middle + 1 elif ( nums[middle] > target ): right = middle -1 else: return middle return -1 list1 = [-1,0,3,5,9,12] my_solution = Solution() print( my_solution.search(list1,9) )