第一次任務の打卡

2020-10-16 14:00:35


一、 變數、運運算元與資料型別

部分練習題及解答

  1. 怎樣對python中的程式碼進行註釋?
    註釋就是對程式碼的解釋和說明。目的是為了讓別人和自己很容易看懂,一看就知道這段程式碼是做什麼用的。正確的程式註釋一般包括序言性註釋和功能性註釋。python中註釋可分為行註釋和塊註釋,即單行註釋和多行註釋。
    ①單行註釋用 # 表示,並在井號後面輸入註釋的內容即可。
    ②多行註釋用一對 三個單引號'''或一對 三個雙引號"""表示,並在一對引號內(可多行)輸入要註釋的內容即可。
print("Hello world") # 這是一個單行註釋

'''
這是多行註釋,用三個單引號
在這裡輸入註釋內容即可
'''

"""
這是多行註釋,用三個雙引號
在這裡輸入註釋內容即可
"""

2.python有哪些運運算元,這些運運算元的優先順序是怎樣的?

①python中的主要運運算元有:算術運運算元、比較運運算元、邏輯運運算元、位運運算元、其他運運算元等,
②一般而言,常用的優先順序為:算術運算 > 位運算 > 邏輯運算

關於運運算元的詳細介紹可參考以下文章:http://c.biancheng.net/view/2190.html

3.python 中 is, is not==, != 的區別是什麼?
is的名稱為
is not的名稱為 不是
== 的名稱為 等於
!= 的名稱為 不等於
① is, is not 對比的是兩個變數的記憶體地址,而 ==, != 對比的是兩個變數的
②當對比的兩個變數是地址不可變的型別(str等),那麼is,is not 和 ==,!= 是完全等價的。當對比兩個變數是地址可變的型別(list,dict等),則兩者是有區別的。

以下給出可變型別與不可變型別的概念:
可變型別:變數名儲存的是一個地址,該地址指向一個具體的物件,並且不管對變數的值即物件做怎麼樣的操作,都不會改變變數名儲存的地址。如python中的列表(list),字典(dict),集合(set)。

不可變型別:不變資料型別的物件一旦發生改變,就會在記憶體中開闢一個新的空間用於儲存新的物件,原來的變數名就會指向一個新的地址。如python中的元組,bool,數位(int),字串(str)。

4.python 中包含哪些資料型別?這些資料型別之間如何轉換?

①常用的資料型別有:整型浮點型布林型

②型別轉換:

  • 轉換為整型 int(x, base=10)
  • 轉換為字串 str(object='')
  • 轉換為浮點型 float(x)
print(int('520'))  # 520
print(int(520.52))  # 520
print(float('520.52'))  # 520.52
print(float(520))  # 520.0
print(str(10 + 10))  # 20
print(str(10.1 + 5.2))  # 15.3

二、位運算

練習題:只出現一次的數位

給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。嘗試使用位運算解決此題。題目說明:

"""
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]

Output file
result1: 1
result2: 4
"""



class Solution:
    def singleNumber(self, nums):
        
     # your code here

解題程式碼如下(向左滑動檢視更多程式碼):

nums = []   # 定義一個空陣列,用於接收陣列


class Solution:   # 構建一個類物件
    def singleNumber(self, nums):  # 定義解決問題的方法
        i = 0
        for i in range(len(nums)):
            j = 0
            target = nums[i]  # 先取出nums的第一元素,作為比較物件
            for num in nums:   # 遍歷陣列以找到不重複的元素
                if target ^ num: # 使用位運算中的互斥或運運算元
                    j += 1
                if j >=len(nums) - 1:
                    return target  # 返回這個不重複的元素


a = Solution()  # 範例化一個類物件
print(a.singleNumber([2, 2, 1]))   #呼叫方法,然後列印結果為1 
print(a.singleNumber([4, 1, 2, 1, 2]))   # 4

Tips:該方法只能找出一個不重複的元素,當要查詢陣列中有兩個及以上的不重複元素時,有待改進…

三、條件語句

if語句中常用的三種型別

if 語句

if expression:
    expr_true_suite

if 語句的 expr_true_suite 程式碼塊只有當條件表示式 expression 結果為真時才執行,否則將繼續執行緊跟在該程式碼塊後面的語句。

if - else 語句

if expression:
    expr_true_suite
else:
    expr_false_suite

Python 提供與 if 搭配使用的 else,如果 if 語句的條件表示式結果布林值為假,那麼程式將執行 else 語句後的程式碼。

if - elif - else 語句

if expression1:
    expr1_true_suite
elif expression2:
    expr2_true_suite
    .
    .
elif expressionN:
    exprN_true_suite
else:
    expr_false_suite

elif 語句即為 else if,用來檢查多個表示式是否為真,並在為真時執行特定程式碼塊中的程式碼。而且elif 可以多個巢狀使用。

關於if語句的一些小心得:
1) else是一條只要不滿足if條件或elif條件就會執行的程式碼,如果知道最終要測試的條件,建議使用elif程式碼塊代替else
2) 如果只想執行一個程式碼塊,就可使用 if - elif - else 結構,這樣只要檢查到一個條件滿足就跳出; 如果執行多個程式碼塊,就使用多個獨立的 if 語句,程式碼執行時會逐個檢查測試條件,且各獨立的 if 語句互不干擾。