天天看點

Python學習, 第003講:插曲之變量和字元串總結

0. 以下哪個變量的命名不正确?為什麼?

    (A) MM_520  (B) _MM520_  (C) 520_MM  (D) _520_MM

c,因為 Python 中的變量名不能以數字開頭。

1. 在不上機的情況下,以下代碼你能猜到螢幕會列印什麼内容嗎?

Python學習, 第003講:插曲之變量和字元串總結

× 黑夜 (見下面總結)

小甲魚

2. 在不上機的情況下,以下代碼你能猜到螢幕會列印什麼内容嗎?

Python學習, 第003講:插曲之變量和字元串總結

× 黑夜(見下面總結)

小甲魚

3. 在不上機的情況下,以下代碼你能猜到螢幕會列印什麼内容嗎?

Python學習, 第003講:插曲之變量和字元串總結

520

會列印:520,注:這裡沒有單引号括起來,但是他是一個字元串,因為使用 print() 列印,是以不包含單引号。可以試試直接>>>first,它是一個字元串的。

4. 除了使用反斜杠(\)進行字元轉義,還有什麼方法可以列印:Let's go! 這個字元串?

(1)

>>> "Let's go!"
"Let's go!"
           

(2) 

>>> print("Let's go!")
Let's go!
           

5. 如果非要在原始字元串結尾輸入反斜杠,可以如何靈活處理?

>>> print("Let's go!\\")
Let's go!\
           

6. 在這一講中,我們說變量的命名需要注意一些地方,但小甲魚在舉例的時候貌似卻幹了點兒“失誤”的事兒,你能看得出小甲魚例子中哪裡有問題嗎?

動動手:

0. 還記得我們第一講的動動手的題目嗎?這一次要求使用變量,計算一年有多少秒?

提示:可以以 DaysPerYear(每年天數),HoursPerDay(每天小時數),MinutesPerHour(每小時分鐘數),SecondsPerMinute(每分鐘秒數)為變量名。

>>> DaysPerYear = 365
>>> HoursPerDay = 24
>>> MinutesPerHour = 60
>>> SecondsPerMinute = 60
>>> ans = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute
>>> ans
31536000
           

1. 關于最後提到的長字元串(三重引号字元串)其實在 Python3 還可以這麼寫,不妨試試,然後比較下哪種更友善?

Python學習, 第003講:插曲之變量和字元串總結

總結

指派,掌握的不夠好。

自己了解:針對數組,清單等對象通用,對于單個資料,字元串等都不通用。

清單:

>>> a = [1 , 2 , 3 , 4]
>>> b = a
>>> a.append(6)
>>> a
[1, 2, 3, 4, 6]
>>> b
[1, 2, 3, 4, 6]
           

字元串:

>>> a = 'asd'
>>> b = a
>>> a = 'asd' + 'asd'
>>> a
'asdasd'
>>> b
'asd'
           
  • 直接指派:其實就是對象的引用(别名)。
  • 淺拷貝(copy):拷貝父對象,不會拷貝對象的内部的子對象。
  • 深拷貝(deepcopy): copy 子產品的 deepcopy 方法,完全拷貝了父對象及其子對象。
  • 解析

    1、b = a: 指派引用,a 和 b 都指向同一個對象。
    Python學習, 第003講:插曲之變量和字元串總結
    2、b = a.copy(): 淺拷貝, a 和 b 是一個獨立的對象,但他們的子對象還是指向統一對象(是引用)。
    Python學習, 第003講:插曲之變量和字元串總結
    b = copy.deepcopy(a): 深度拷貝, a 和 b 完全拷貝了父對象及其子對象,兩者是完全獨立的。
    Python學習, 第003講:插曲之變量和字元串總結

繼續閱讀