天天看點

python基礎入門一(文法基礎)

作為自己正式接觸并應用的第一門程式設計語言,在Alex和武sir兩位大王的要求下,開始了寫部落格總結的日子。學習程式設計語言是很有趣的一件事情,但有2點請一定要謹記:1.做人靠自己,碼代碼也必須靠自己。能不能成為python大牛,靠的是平時邏輯的訓練和日複一日的碼代碼練出來的;2.多總結、多思考、多查閱。實作需求的方式有多種,但總會有另一個辦法是更加高效的!

博文内容屬于基礎篇,實時更新,如有地方寫的不好,還請大家批評指正!

大人不華,君子務實!

python的文法基礎

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
'''
1.python的換行縮進和注釋
2.python的輸入和輸出
3.python變量
4.python的字元編碼
5.python格式化
6.python基本資料類型
'''      

目錄導讀

任何一種程式設計語言都有自己的一套文法,python也不例外。值得提一句的是,python對字母大小寫是敏感的。

1、python的換行、縮進和注釋

python代碼的組織不像java、C一樣用“{}”來控制子產品,而是用“換行和縮進”來組織子產品,一般情況建議4個空格的縮進。

#who big who print
a = 3
b = 4
if a > b:
    print(a)
else:
    print(b)      

上述代碼中的(#)是python的單行注釋符,如果實作多行注釋,可以用三個(‘)或(“)來實作。特别需要注意的是,python的(’)和(”)使用方法是相同的。

print("#這是單行注釋”)
print(“
'''
這
是
多
行
注
釋
'''")      
2、python的輸入和輸出

python的輸入和輸出在2.X和3.X這兩個版本裡用法略有不同。

#在3.X版本的python裡,輸入和輸出
name = input("what is your name: ")
print(name)
#在2.X版本的python裡,輸入和輸出
name = raw_input("what is your name: ")
print name      

在3.X版本的python中,簡化了輸入的文法,輸出的(print)被内置成了函數,是以函數後邊要有參數傳進來>> print(name),個人覺得這兩個版本的差别隻有個别地方的不同,用到時稍微注意下就可以了(習慣問題就隻能酸爽的呵呵了)。

3、什麼是變量?

我們回想一下國中時候的代數基礎知識:有個邊長為a的正方形,那麼正方形的面積就是:a*a。這個時候,a就看做是變量,我們給a任意賦一個值,就可以計算出正方形的面積了.

#求邊長為a的正方形面積
a = 3        #把3指派給邊長a
s = a*a    #把計算結果指派給s
print(s)    #輸出正方形面積s            

除此之外,變量可以是其它的任意資料類型,如字元串、布爾、浮點數,甚至是函數。也可以實作變量之間的指派。

a = 3
b = True
c = b
b = a
print(a,b,c)      
3 3 True      
 4、python字元編碼

字元串也是一種資料類型,但是,字元串比較特殊的是還有一個編碼問題。由于計算機是美國人發明的,是以,最早隻有127個字母被編碼到計算機裡,也就是大小寫英文字母、數字和一些符号,這個編碼表被稱為"

ASCII"

編碼,比如大寫字母

A

的編碼是

65

,小寫字母

z

122

但是要進行中文顯然一個位元組是不夠的,至少需要兩個位元組,而且還不能和ASCII編碼沖突,是以,中國制定了

GB2312

編碼,用來把中文編進去。可是世界除了英語和中文之外,還有很多語言。是以,Unicode應運而生。Unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。

在計算機記憶體中,統一使用Unicode編碼,當需要儲存到硬碟或者需要傳輸的時候,就轉換為UTF-8編碼。用記事本編輯的時候,從檔案讀取的UTF-8字元被轉換為Unicode字元到記憶體裡,編輯完成後,儲存的時候再把Unicode轉換為UTF-8儲存到檔案:

python基礎入門一(文法基礎)

在最新的Python 3.X版本中,字元串是以Unicode編碼的,也就是說,Python的字元串支援多語言;需要注意的是,在2.X版本裡,需要加一行注釋,否則python2會預設使用ASCII編碼。

# -*- coding:utf-8 -*-      
5、python的格式化

最後一個常見的問題是如何輸出格式化的字元串。我們經常會輸出類似"

歡迎XXX!您的賬戶餘額為:XXX"

之類的字元串,而XXX的内容都是根據變量變化的,是以,需要一種簡便的格式化字元串的方式。python的字元串格式化用(%)來實作!

'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.      

在字元串内部,

%s

表示用字元串替換,

%d

表示用整數替換,有幾個

%?

占位符,後面就跟幾個變量或者值,順序要對應好。如果隻有一個

%?

,括号可以省略。

python基礎入門一(文法基礎)
6、python基本資料類型

字元串(str)

定義字元串

  python字元串的定義是用(”)或(‘)引起來,三個引号也可以定義一個字元串,不同的是後者支援多行編碼。

s0 = "hello"
s1 = ' world'
s3 = ''' hello
         python'''
s4 = """  python is 
        good """          

常用的字元串計算

  1.字元串的加法運算,可以試一下下邊代碼兩個輸出異同點。

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
a = 'as1d'
b = 'fa3s'
print(a,b)
print(a+b)      

View Code

  2.字元串的乘法運算:

a = 'as1d'
s = a * 5
print(s)      

  3.字元串大小比較:比較的是ASCII碼的大小。

a = "A"
b = "a"
if a > b:
    print(1)
else:
    print(0)      

  4.字元串的in運算:判斷某個字元串是否為另外一個字元串的子串

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
a = 'qwert'
b = 'w'
if b in a:
    print(yes)
else:
    print(no)      

常用的字元串函數

  index(索引)  S.index(substr, [start, [end]])可以通過索引通路字元串内部的任意元素。

s = "qwertyuiop"
#    012345678910      

python字元串中代表字元串(qwer...)位置的下标,稱之為索引(0123...),運作下面代碼試一下!

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
s = 'qwertyuiop'
print(s[0],s[3],s[9]      

我們要prints裡的每一個字元串,應該怎麼辦呢?用while循環試一下:

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
s = "qwertyuiop"
i = 0
while i < len(s):
    print s[i]
    i += 1      

上述代碼中的len()函數傳回s字元串的長度值,s[i]代表着目前下标i的元素值。

  slice(切片)  通路字元串内部任意部分的元素

要通路s字元串裡的’yu‘字元串應該怎麼實作呢?

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
s = 'qwertyuiop'
print(s[5:7])
#python的切片規則,s[start:end]是瞻前不顧後的      

   find(查找)  S.find(substr),傳回s中substr這個字元串中第一個元素的索引:

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
s = "qwertyuiop"
a = "io"
t = s.find(a)
print(t)      

   split(切片) S.split([sep, [maxsplit]]),以sep為分隔符,把S分成一個list。maxsplit表示分割的次數。預設的分割符為空白字元 

s = 'qwer,tyuiop'
s.split(",")      

其它的字元串函數,大家可以在互動一下help(str),傳回的是字元串所有的函數方法。

help(str)      

清單(list)

清單的常用函數:

python基礎入門一(文法基礎)
python基礎入門一(文法基礎)
append(...)
 |      L.append(object) -> None -- append object to end
 |  clear(...)
 |      L.clear() -> None -- remove all items from L
 |  copy(...)
 |      L.copy() -> list -- a shallow copy of L
 |  count(...)
 |      L.count(value) -> integer -- return number of occurrences of value
 |  extend(...)
 |      L.extend(iterable) -> None -- extend list by appending elements from the iterable
 |  index(...)
 |      L.index(value, [start, [stop]]) -> integer -- return first index of value.
 |      Raises ValueError if the value is not present.
 |  insert(...)
 |      L.insert(index, object) -- insert object before index
 |  pop(...)
 |      L.pop([index]) -> item -- remove and return item at index (default last).
 |      Raises IndexError if list is empty or index is out of range.
 |  remove(...)
 |      L.remove(value) -> None -- remove first occurrence of value.
 |      Raises ValueError if the value is not present.
 |  reverse(...)
 |      L.reverse() -- reverse *IN PLACE*
 |  sort(...)
 |      L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
 |        

繼續閱讀