1. 程式人生 > >Python學習筆記系列之002:變量 註釋 輸入 輸出

Python學習筆記系列之002:變量 註釋 輸入 輸出

練習題 命名 outer 計算機 鍵盤 -a 考題 onerror rac

導讀:

1.變量

2.字符編碼

3.註釋

4.輸出

5.輸入

6.縮進

7.報錯單詞釋義

8.代碼規範

基礎語法是任何語言的基礎,只有熟練掌握,才能靈活用語言,寫出高效、優美、簡潔的代碼。

Python的語法是非常靈活別具一格的。學習語言就要學習它的風格、特點,這才是語言的精粹。Python尤其如此。

一、變量

變量(Variables)是為了存儲程序運算過程中的一些中間結果,為了方便日後調用。

1.聲明變量

1 #_*_coding:utf-8_*_         推薦這種
2 #coding=utf-8
3 name = "salmond"

2.變量的賦值

1 name = "
salmond" 2 name2 = name 3 print(name,name2) #salmond salmond 4 5 name = "Jack" 6 print("name2") #salmond

3.標識符和關鍵字

標識符:開發人員在程序中自定義的一些符號和名稱。標識符是自己定義的,如變量名 、函數名等。

標識符由字母、下劃線和數字組成,且數字不能開頭。

標識符區分大小寫:Andy≠andy

關鍵字:python一些具有特殊功能的標識符,這就是所謂的關鍵字。關鍵字是python已經使用的了,所以不允許開發者自己定義和關鍵字相同的名字的標識符。

4.變量的命名規則

1)要具有描述性,見名知意;

2)變量名只能由下劃線、數字、字母組成,不可以是空格或特殊字符(#?<.,¥$*!~);

3)最好不要以中文或拼音為變量名;

4)不能以數字開頭;

5)駝峰命名;

  小駝峰命名:myName

  大駝峰命名:MyName

  #還有一種 my_name,Python中常用。

6)保留字符(關鍵字)不能被使用。

  可以通過以下命令查看當前系統中python的關鍵字:

>>> import keyword

>>> keyword.kwlist

[False, None
, True, and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield]

思考題:下面的標識符哪些是正確的,哪些不正確為什麽?

   fromNo12
   from#12
   my_Boolean
   my-Boolean
   Obj2
   2ndObj
   myInt
   test1
   Mike2jack
   My_tExt
   _test
   test!32
   haha(da)tt
   int
   jack_rose
   jack&rose
   GUI
   G.U.I

5.常量

常量(constant) :不變的量 pie = 3.141592653....

在py裏面所有的變量都是可變的 ,所以用全部大寫的變量名來代表此變量為常量。

二、字符編碼

python2解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ASCII),如果是如下代碼的話:

報錯:ASCII碼無法表示中文

   #!/usr/bin/env python

   print "你好,世界"

改正:應該顯式的告訴python解釋器,用什麽編碼來執行源代碼,即:

   #!/usr/bin/env python

   # -*- coding: utf-8 -*-  (或者:#coding:utf-8)

   print "你好,世界"

Python2.x == ASCII默認編碼

#!-*- coding:utf-8 -*-

#coding:utf-8

Python3.x == Unicode默認編碼

Unicode 是向下兼GB2312 , GBK

擴展知識:

ASCII

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8 位來表示(一個字節),即:2**8 = 256-1,所以,ASCII碼最多只能表示 255 個符號。

關於中文

支持中文的第一張表就叫 GB2312。

1980 gb2312 6700+

1995 gbk1.0 20000

2000 gb18030 27000

big5 臺灣

為了處理漢字,程序員設計了用於簡體中文的GB2312和用於繁體中文的big5。

GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區的內碼範圍高字節從B0-F7,低字節從A1-FE,占用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。

GB2312 支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分為漢字區和圖形符號區。漢字區包括21003個字符。2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。現在的PC平臺必須支持GB18030,對嵌入式產品暫不作要求。所以手機、MP3一般只支持GB2312。

從ASCII、GB2312、GBK 到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方案中總是有相同的編碼,後面的標準支持更多的字符。在這些編碼中,英文和中文可以統一地處理。區分中文編碼的方法是高字節的最高位不為0。按照程序員的稱呼,GB2312、GBK到GB18030都屬於雙字節字符集 (DBCS)。

有的中文Windows的缺省內碼還是GBK,可以通過GB18030升級包升級到GB18030。不過GB18030相對GBK增加的字符,普通人是很難用到的,通常我們還是用GBK指代中文Windows內碼。

Unicode

顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字符和符號的編碼,即:Unicode

Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一並且唯一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536 = 存一個字符 統一占用2個字節

UTF-8

UTF-8,是對Unicode編碼的壓縮和優化,可變長的字符編碼集。不再使用最少使用2個字節,而是將所有的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...

ASCII -->GB2312 ->GBK1.0-->GB18030

ASCII -->Unicode -->UTF-8 /UTF-16

在計算機內存中,統一使用 Unicode 編碼,當需要保存到硬盤或者需要傳輸的時候,就轉換為 UTF-8 編碼。

技術分享圖片

三、註釋

單行註釋

語法:
# 被註釋內容

為了保證代碼的可讀性,# 後面建議添加一個空格,然後再編寫相應的說明文字 。

在程序開發時,同樣可以使用 # 在代碼的後面(旁邊)增加說明性的文字。但是,需要註意的是,為了保證代碼的可讀性,註釋和代碼之間 至少要有 兩個空格。示例代碼如下:

 print("hello python")  # 輸出 `hello python`

多行註釋

語法:

‘‘‘ 被註釋內容 ‘‘‘

""" 被註釋內容 """

四、輸出

1.普通的輸出

你可以給它傳遞零個或多個用逗號隔開的表達式:

print([object, ...][, sep= ][, end=endline_character_here][, file=redirect_to_here])

方括號內是可選的,sep表示分割符,end表示結束符,file表示重定向文件。如果要給sep、end、file指定值必須使用關鍵字參數。

print(‘hello world‘)

print(hello, world, sep=%)  # 輸出hello%world
print(hello, world, end=*)  # 輸出hello world*, 並且不換行

2.格式化輸出

如果希望輸出文字信息的同時,一起輸出數據,就需要使用到 格式化操作符。

% 被稱為格式化操作符,專門用於處理字符串中的格式。包含 % 的字符串,被稱為格式化字符串。

% 和不同的 字符 連用,不同類型的數據 需要使用 不同的格式化字符。

語法格式如下:

print("格式化字符串" % 變量1)

print("格式化字符串" % (變量1, 變量2...))

2.1 格式化字符含義

%s 字符串

%d 有符號十進制整數

%06d 表示輸出的整數顯示位數,不足的地方使用 0 補全

f 浮點數

%.2f 表示小數點後只顯示兩位

%%輸出 %

2.2 格式化輸出案例

定義字符串變量 name,輸出 我的名字叫 小明,請多多關照!

定義整數變量 student_no,輸出 我的學號是000001 。

定義小數 price、weight、money,輸出 蘋果單價 9.00 元/斤,購買了 5.00 斤,需要支付 45.00 元。

定義一個小數 scale,輸出數據比例是10.00%。

print("我的名字叫 %s,請多多關照!" % name)

print("我的學號是 %06d" % student_no)

print("蘋果單價 %.02f 元/斤,購買 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))

print("數據比例是 %.02f%%" % (scale * 100)

2.3 常見的格式符號

技術分享圖片

2.4 換行輸出

print("1234567890-------")  # 會在一行顯示

print("1234567890\n-------")  # 一行顯示1234567890,另外一行顯示-------

名片小案例:

print(==================================\n姓名: salmond\nQQ:xxxxxxx\n手機號:110xxxxxx\n公司地址:上海市xxxx\n==================================)

結果如下:

==================================

姓名: salmond

QQ:xxxxxxx

手機號:110xxxxxx

公司地址:上海市xxxx

==================================

五、輸入

1.Python2.x版本中

raw_input()

Python2中,獲取鍵盤輸入的數據的方法是采用 raw_input 函數

password = raw_input("請輸入密碼:")

print 您剛剛輸入的密碼是:, password

註意:

raw_input()的小括號中放入的是,提示信息,用來在獲取數據之前給用戶的一個簡單提示;

raw_input()在從鍵盤獲取了數據以後,會存放到等號右邊的變量中;

raw_input()會把用戶輸入的任何值都作為字符串來對待。

input()

input()函數與raw_input()類似,但其接受的輸入必須是表達式

input()接受表達式輸入,並把表達式的結果賦值給等號左邊的變量。

>>> a = input()

123

>>> a

123

>>> type(a)

<type int>

>>> a = input()

abc

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "<string>", line 1, in <module>

NameError: name abc is not defined

>>> a = input()

"abc"

>>> a

abc

>>> type(a)

<type str>

>>> a = input()

1+3

>>> a

4

>>> a = input()

"abc"+"def"

>>> a

abcdef

>>> value = 100

>>> a = input()

value

>>> a

100

2.python3.x版本中

沒有raw_input()函數,只有input()。

並且python3中的input與python2中的raw_input()功能一樣。

小括號中放入的是,提示信息,用來在獲取數據之前給用戶的一個簡單提示。

input()會把用戶輸入的任何值都作為字符串來對待

六、縮進

Python對縮進敏感。縮進級別必須保持一致 。

官方建議使用4個空格進行縮進。

因為使用原生Tab鍵在Linux系統中會出錯。

tab != 4個空格

縮進錯誤:
IndentationError: expected an indented block   
IndentationError: unindent does not match any outer indentation level

七、報錯單詞釋義

每個程序員都會遇到程序報錯的情況,此時能夠讀懂報錯信息,便顯得尤為重要。所以,英語對程序員很重要啊!

以下是報錯信息中一些常見的單詞:

* error 錯誤
* name 名字
* defined 已經定義
* syntax 語法
* invalid 無效
* Indentation 索引
* unexpected 意外的,不期望的
* character 字符
* line 行
* encoding 編碼
* declared 聲明
* details 細節,詳細信息
* ASCII 一種字符編碼

八、代碼規範

Python語言的一大特點就是優雅,這要歸功於它有著很嚴格的代碼規範。

關於代碼規範,Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文檔。其中第 8 篇文檔專門針對 Python 的代碼格式 給出了建議,也就是俗稱的 PEP 8。谷歌有對應的中文文檔。

九、小案例與練習題

1.小案例:死亡倒計時

death_age = 80 
name = input("your name:")
age = input("your age:")  #input 接收的所有數據都是字符串,即便你輸入的是數字,但依然會被當成字符串來處理
print( type(age) )    #結果為:<class ‘str‘>
#int integer =整數  把字符串轉成int,用int(被轉的數據)
#str string =字符串 把數據轉成字符串用str(被轉的數據)
print("Your name:",name)
#print("You can still live for ",  death_age - int(age)," years ....")
print("You can still live for " +  str(death_age - int(age)) +" years ....")

2.練習題

以後每篇教程的最後都會加入一些練習題,進行鞏固。練習題的答案會在下一篇教程中給出。

練習題1:編寫程序,從鍵盤獲取用戶名和密碼,然後判斷,如果正確就輸出以下信息

親愛的xxx,歡迎登陸 愛學習管理系統

練習題2:從鍵盤獲取一個人的信息,然後按照下面格式化輸出顯示

==================================

姓名: salmond

QQ:xxxxxxx

手機號:110xxxxxx

公司地址:上海市xxxx

==================================

練習題3:編寫程序,完成以下要求:

提示用戶進行輸入數據;

獲取用戶的數據數據(需要獲取2個);

對獲取的兩個數字進行求和運行,並輸出相應的結果。

提示:int()可將字符串轉換成數字

Python學習筆記系列之002:變量 註釋 輸入 輸出