python基礎中的基礎

残肢發表於2024-03-18

python基礎學習

Created: November 28, 2023 6:48 PM
Tags: Beginning

值得思考的一些事情

安裝Python

各大網站已有詳細教程故不贅述。

  • 注意,終端退出Python(Windows):[Ctrl + z ] [Enter] 。
  • 如何在終端上儲存/ 執行Py檔案:
    1. 以在終端上使用mkdir命令,如

      mkdir /tmp/py 
      
    2. 使用 cd 命令來改變目錄到你儲存檔案的地方,例如 cd /tmp/py 。

    3. 透過輸入命令 python hello.py來執行程式。程式的輸出結果應如下方所示:

      $ python hello.py
      hello world
      

註釋

註釋 是任何存在於 # 號右側的文字,其主要用作寫給程式讀者看的筆記。

舉個例子:

print('hello world') #注意到 print 是一個函式

# 注意到 print 是一個函式
print('hello world')

數字/常量

數字

  1. 整數(Integer)
  2. 浮點數(Float)
  • 沒有單獨的 long 型別。 int 型別可以指任何大小的整數。

字串

單引號

你可以使用單引號來指定字串,例如 '將我這樣框進來' 或 'Quote me on this' 。
所有引號內的空間,諸如空格與製表符,都將按原樣保留。

雙引號

被雙引號包括的字串和被單引號括起的字串其工作機制完全相同。例如 "你的名字是?" 或"What's your name?" 。

三引號

'''這是一段多行字串。這是它的第一行。
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

格式化方法

有時候我們會想要從其他資訊中構建字串。這正是 format() 方法大有用武之地的地方。
將以下內容儲存為檔案 str_format.py :

age = 20
name = 'Swaroop'
print('{0} was {1} years old when he wrote this book'.format(name, age))
print('Why is {0} playing with that python?'.format(name))

輸出:

$ python str_format.py
Swaroop was 20 years old when he wrote this book
Why is Swaroop playing with that python?

How does it work ?

一個字串可以使用某些特定的格式(Specification),隨後, format 方法將被呼叫,使用這一方法中與之相應的引數替換這些格式。

在這裡要注意我們第一次應用這一方法的地方,此處 {0} 對應的是變數 name ,它是該格式化方法中的第一個引數。與之類似,第二個格式 {1} 對應的是變數 age ,它是格式化方法中的第二個引數。請注意,Python 從 0 開始計數,這意味著索引中的第一位是 0,第二位是1,以此類推。

我們可以透過聯立字串來達到相同的效果:

name + 'is' +str(age) + 'years old'

但這樣實現是很醜陋的,而且也容易出錯。其次,轉換至字串的工作將由 format 方法自動完成,而不是如這般需要明確轉換至字串。再次,當時用 format 方法時,我們可以直接改動文字而不必與變數打交道,反之亦然。
同時還應注意數字只是一個可選選項,所以你同樣可以寫成:

age = 20
name = 'Swaroop'
print('{} was {} years old when he wrote this book'.format(name, age))
print('Why is {} playing with that python?'.format(name))

Python 中 format 方法所做的事情便是將每個引數值替換至格式所在的位置。這之中可以有更詳細的格式,例如:

# 對於浮點數 '0.333' 保留小數點(.)後三位
print('{0:.3f}'.format(1.0/3))
# 使用下劃線填充文字,並保持文字處於中間位置
# 使用 (^) 定義 '___hello___'字串長度為 11
print('{0:_^11}'.format('hello'))
# 基於關鍵詞輸出 'Swaroop wrote A Byte of Python'
print('{name} wrote {book}'.format(name='Swaroop', book='A Byte of Python'))

輸出

0.333
___hello___
Swaroop wrote A Byte of Python

由於我們正在討論格式問題,就要注意 print 總是會以一個不可見的“新一行”字元( \n )結尾,因此重複呼叫 print 將會在相互獨立的一行中分別列印。為防止列印過程中出現這一換行符,你可以透過 end 指定其應以空白結尾:

print('a', end='')
print('b', end='')

輸出:

ab

或者你透過 end 指定以空格結尾:

print('a', end=' ')
print('b', end=' ')
print('c')

輸出:

a b c

轉義序列

想生成一段包含單引號(’)的字串,為了讓Python不把他當作字串的開頭/結尾,我們使用反斜槓(\)來指定單引號。

另一種指定這一特別的字串的方式是這樣的: "What's your name?" ,如這個例子般使用雙引號。類似地, 你必須在使用雙引號括起的字串中對字串內的雙引號使用轉義序列。同樣,你必須使用轉義序列 \ 來指定反斜槓本身

除此之外,和C語言一樣,Python也有\n(換行)、\t(製表符)

還有一件需要的事情,在一個字串中,一個放置在末尾的反斜槓表示字串將在下一行繼續,但不會新增新的一行。來看看例子:

"This is the first sentence. \
This is the second sentence."

相當於:

"This is the first sentence. This is the second sentence."

原始字串

如果你需要指定一些未經過特殊處理的字串,比如轉義序列,那麼你需要在字串前增加r 或 R 來指定一個 原始(Raw) 字串 。下面是一個例子:

r"Newlines are indicated by \n"

變數

識別符號命名

變數是識別符號的一個例子。識別符號(Identifiers) 是為 某些東西 提供的給定名稱。在你命名識別符號時,你需要遵守以下規則:

  1. 第一個字元必須是字母表中的字母(大寫 ASCII 字元或小寫 ASCII 字元或 Unicode 字元)或下劃線( _ )。
  2. 識別符號的其它部分可以由字元(大寫 ASCII 字元或小寫 ASCII 字元或 Unicode 字元)、下劃線( _ )、數字(0~9)組成。
  3. 識別符號名稱區分大小寫。例如, myname 和 myName 並不等同。要注意到前者是小寫字母 n 而後者是大寫字母 N 。
  4. 有效 的識別符號名稱可以是 i 或 name_2_3 ,無效 的識別符號名稱可能是
    2things , this is spaced out , my-name 和 >a1b2_c3 。

資料型別

變數可以將各種形式的值儲存為不同的資料型別(Data Type)。基本的型別是我們已經討論過的數字與字串。在後面的章節中,我們會了解如何透過 類(Classes) 類建立我們自己的型別。

物件

需要記住的是,Python 將程式中的任何內容統稱為 物件(Object)。這是一般意義上的說
法。我們以“某某物件(object)”相稱,而非“某某東西(something)”。

針對物件導向程式語言使用者的提示:
Python 是強(Strongly)物件導向的,因為所有的一切都是物件, 包括數字、字串與
函式。

接下來我們將看見如何使用變數與字面常量。你需要儲存以下案例並試圖執行程式。

相關文章