Python-2-變量和簡單數據類型

既然是編程語言,那麼就肯定會涉及到一個重要的概念–變量,變量是編程的起點,這句話一點都沒毛病,有了變量的存在,程序纔有更多的可能性。Python的基本數據類型包括數字,字符串,布爾值,列表,元組,字典

註釋

之所以第一個要提到註釋,是因爲註釋真的真的很重要,雖說好的代碼自成註釋,但無論如何註釋都是程序不可或缺的一部分,好的代碼應占到代碼總量的三分之一,筆者在工作中經常會遇到閱讀他人代碼時,註釋不足或者乾脆根本沒有註釋,那種感覺,很難受,不得不去代碼中一步一步感受原作者思路,這種時候甚至覺得好不如自己重頭實現。在這個合作編程的時代,註釋的重要性越來越重要,另外也是很久以後回頭再看代碼時候的提示。好了,廢話不多說,編寫註釋的主要目的是闡述代碼要做什麼,以及是如何做的。來看看python的註釋是怎麼寫的

單行註釋

在Python中,註釋用井號(#)標識。井號後面的內容都會被Python解釋器忽略
例如

# 這是一句註釋
print("Hello Python!") # 這也是一句註釋

多行註釋

多行註釋採用的是成對的三個單引號或者雙引號,例如

"""
這是一個多行註釋
"""
'''
這也是一個多行註釋
'''

變量

變量示例

變量,顧名思義就是一個可變的量,Python作爲一種弱類型語言,並不會像C++,Java那樣明確指定變量類型,例如要使用一個字符串變量,只需要按以下方式

message = "hello python"
print(message)

結合其他編程語言的學習經驗,這算是變量的聲明和賦值放在了一起,簡化了編程者的工作,當然這只是個人理解,具體是否是這樣實現的還需要根據後面的深入學習再去探討。

變量的命名

既然是自定義的變量,那麼在給變量取名的時候肯定是需要一些規則的,再Python中,變量遵守大多數編程語言的變量命名規則:

  1. 變量名只能包含字母、數字和下劃線。變量名可以字母或下劃線打頭,但不能以數字打頭。
  2. 變量名不能包含空格,但可使用下劃線來分隔其中的單詞。
  3. 不要將Python關鍵字和函數名用作變量名,即不要使用Python保留用於特殊用途的單詞。
  4. 變量名應既簡短又具有描述性。

Python的用戶輸入

函數input() 讓程序暫停運行,等待用戶輸入一些文本。獲取用戶輸入後,Python將其存儲在一個變量中,以供程序使用。注意:input()接收到的是一個字符串,如果需要將其轉化爲數字類型,則使用int()
函數input() 接受一個參數:即要向用戶顯示的提示或說明,讓用戶知道該如何做。

name = input("Please enter your name: ")
print("Hello, " + name + "!")
age = int(input("Please enter your age: "))
print(type(age)) # 輸出:<class 'int'>

Python2應使用函數raw_input()來提示用戶輸入。這個函數與Python3中的input()一樣,也將輸入解讀爲字符串。

字符串

字符串示例

字符串,也就是一系列字符,在任何編程中都佔據了重要地位,C中採用數組形式實現,Java中則特別定義了String類,在Python中也是一樣,也做了字符串的處理。

在Python中,用引號括起的都是字符串,其中的引號可以是單引號,也可以是雙引號。例如:

"This is a string."
'This is also a string.'

所以在python中,是可以嵌套使用單雙引號的,但千萬別忘了引號的嵌套關係以及替代關係,例如,在用單引號括起的字符串中,如果包含撇號,就將導致錯誤
'That's a very easy coding language.'
種種錯誤的解決辦法也是多種多樣的,可以使用雙引號,轉義符等

"That's a very easy coding language."
'That\'s a very easy coding language.'

字符串的常用方法

  • 修改字符串大小寫
    能夠修改大小寫的方法很多,這裏列出最常用的三個
title() # 以首字母大寫的方式顯示每個單詞
upper() # 字符串全部轉換爲大寫
lower() # 字符串全部轉換爲小寫
  • 合併(拼接)字符串
    字符串的合併也是很常見的操作
    Python最簡單的合併操作就是使用 + 進行合併,這裏相當於是做了操作符重載
full_name = "Mr." + "cj5785" # 輸出爲:Mr.cj5785
  • 添加和刪除空白
    空白 泛指任何非打印字符,如空格、製表符和換行符
符號 意義
\t 製表符
\n 換行符

當然還有其他很多符號,這裏不再一一列舉,列舉一個使用方法

print("this is a string.\nThat is true")
#輸出爲:
#this is a string.
#That is true

當然,有添加就一定有刪除,在Python中,提供了很多方法去刪除字符串中的多餘空格,這種刪除在用戶輸入時候用的會比較多

lstrip() # 刪除左側
rstrip() # 刪除右側
strip() # 刪除兩端

例如

coding_language = ' python '
print(coding_language) # 輸出(下劃線指代空格):_python_
print(coding_language.lstrip()) # 輸出(下劃線指代空格):python_
print(coding_language.rstrip()) # 輸出(下劃線指代空格):_python
print(coding_language.strip()) # 輸出(下劃線指代空格):python
print(coding_language) # 輸出(下劃線指代空格):_python_

由輸出可見,方法調用並不會改變原有值,那麼如果要改變原有值,那麼將原有值重新賦值就可以了,例如:

coding_language = ' python '
print(coding_language) # 輸出(下劃線指代空格):_python_
coding_language = coding_language.strip()
print(coding_language) # 輸出(下劃線指代空格):python

另外有一些比較常用的方法

capitalize() # 首字母大寫,與title的區別在於只大寫第一個
casefold()與lower() # 字符串全部轉換爲小寫,區別在於lower()只對ASCII也就是'A-Z'有效
center() # 拓展長度,可指定拓展字符,與此對應的還有ljust與rjust的,一個左填充一個右填充
count() # 計算序列出現次數
encode() 與 decode() # 編碼相關
endwith() # 是否以某序列結尾,與之對應的是startwith()
find() # 查找序列開始位置,與之類似的是index(),區別在於前者未找到返回-1,後者報錯
format # 格式化,還有一個format_map
isalnum() # 是否只包含數字或字母
expandtabs() # 空格填充,用於製表
isalpha() # 是否只包含字母漢字
isdecimal() # 是否只包含數字,與之類似的isdigit(),isnumeric()
isprintable() # 是否可打印(不包含不可見字符)
isspace() # 時候是空格
istitle() # 是否是標題
join() # 每個元素按指定元素拼接 e.g. "*".join("jack") -> J*a*c*k
islower() # 是否爲小寫,與之轉化的方法:lower()
isupper() # 是否爲大寫,與之轉化的方法:upper()
strip(),lstrip(),rstrip() # 去掉空格,包含換行,可指定參數
slipt() # 分割,可以指定分割份數
splitlines() # 分割,以\n分割,參數爲bool,代表是否保留換行
swapcase() # 大小寫轉換
replace() # 替換

字符串可以按照索引得到字符

test = "python"
v1 = test[0]
v2 = test[0:2] # test[0:-1]
v3 = len(test)

數字

在程序中,數字佔據了很重要的位置,記錄着和種各樣的數據,可以說數據處理是編程的核心了,那麼python中的數字又是怎麼樣的呢?

整數

Python3中的整數都爲int,而Python中的整數包含int和long
整數指的就是0, 1, 45, -1這樣的數字,當然,這些數字可以進行計算,(+)減(-)乘(*)除(/)模(%)等運算,另外,python提供乘方運算,使用(**)進行計算

>>> 3 ** 2
9

運算遵循科學運算優先級,當然,括號的優先級最高

浮點數

所謂的浮點數,其實就是小數,但需要指出的是,python和其他編程語言一樣,存在者小數無法精確表示的問題,例如:

>>> 0.2 + 0.1
0.30000000000000004

這是由於計算機二進制和數據表示的方式造成的,當然任何語言都提供了這種問題的解決方案,後面也會去探討這個問題,造成這個問題的原因在之前的C語言文章中具體分析過,剛興趣的不妨去看看。

字符串與數字結合使用時候的注意事項

當字符串和數字聯合使用的時候,有時候會有問題,例如下面這個問題

age = 18
message = "my age is " + age
print(message)

此時,編譯器就會報錯,因爲他不知道這裏應該如何處理這個18,到底是字符串1,8還是數字18,所以這裏要將其做轉化

age = 18
message = "my age is " + str(age)
print(message)

還有些常用方法,例如二進制的轉化

int("123")
int("0011", base=2)
bit_length() # 二進制長度

在python中,3 / 2在python2和python3得到的結果是不一樣的
python2中得到1,python3中得到1.5

布爾型

bool既爲真假,真-True,假-False
==><<=>=!=<>not
要注意一點:
"" -> False
" " -> True
0 -> False
其他 -> True

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章