首先python是一種面向對象、開源的、具有解析性的編程語言.接下來我們來看看python的基本一些語法. 學習一門語言,第一個程式就是Hello World程式.在Python裡面,Hello World的程式代碼如下: print("Hello World") 從這句代碼我們可以看出來,pyth ...
首先python是一種面向對象、開源的、具有解析性的編程語言.接下來我們來看看python的基本一些語法.
學習一門語言,第一個程式就是Hello World程式.在Python裡面,Hello World的程式代碼如下:
print("Hello World")
從這句代碼我們可以看出來,python是非常優雅簡潔的,不像Java語言、C語言等其他語言那麼繁瑣.接下來我們來對比一下它們的Hello World程式.
Java:
class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
C語言:
#include<stdio.h>
main(){
printf("Hello World\n");
}
C++:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!";
}
這些語言相互對比,我們可以發現python在代碼的書寫上是完勝於其它語言的,不過在編譯的效率上卻慢於其它語言.
在python裡面,標識符是由字母、數字、下劃線組成,但是不能以數字開頭,標識符的字母也是區分大小寫的.如"Helloword"與"HellWord"是兩個完全不同的標識符.切記python標識符裡面沒有"$",學過Java的可能會在這兒有所弄混.因為在python裡面的"$"只能被當做是一個特殊字元.
接下里說說字元編碼的演變過程:最開始的時候是ASCII編碼,裡面可以存255個字元,每個字元只占用了1bytes.但是編碼是由外國人編的,外國人考慮到其它國家也會用到,但由於沒有想到外文很多,位元組不夠用,於是就只留下來了128個字元的占位,所以最開始的ASCII編碼就只有127個.但是光一個中國的漢字就是上萬,128個占位根本不夠用,所以又是怎麼樣解決這個問題的呢?於是後來人們想出來了擴展列表.就是在占位的地方再擴展出來一張列表來進行占位.所以正因為這樣便出現了中文的字元編碼,也就是1980年的GB3212,裡面收錄了中文漢字七千多個.隨著發展,後來1995年又出現了GBK1.0,裡面收錄了漢字兩萬多個.到了2000年,發展到了GB18030,裡面收錄了漢字兩萬七千餘個.但是每個國家有每個國家的編碼,且這些編碼並不統一,於是在安裝運行的時候經常出現亂碼的情況.為瞭解決這個問題,聯合國於是製作出來了一套統一的標準UTF-8.在UTF-8中,英文只占一個位元組,漢字占三個位元組.
接下來我們說說輸出語句,輸出語句的語法是:
print("HelloWorld")
有以下程式:
name = "Bailinghu"
name2 = name
print("My name is ",name2)
在這個程式裡面,我們對name進行賦值,然後把name的值再賦值給name2,所以運行之後的結果是:
My name is Bailinghu
在python裡面,我們如果不想執行一個語句或者一段程式,我們可以將該語句或者該程式註釋掉.python裡面單行註釋的語法是在語句前加"#",多行註釋就是加"""語句"""或者'''語句'''.當然,多行註釋的話還作為多行列印.
有以下程式:
name = "Bailinghu"
'''
name2 = "ZHANGSAN"
name = name2
'''
name3 = "WANGMAZI"
#print(name3)
print(name)
在這段代碼裡面,單引號裡面的語句和#號後面的語句是不執行的.所以程式運行的結果是:
Bailinghu
在這段代碼裡面,如果我們想把引號內的內容列印出來,那我們只需要把它賦值給一個變數就行了.代碼如下:
msg='''
name2 = "ZHANGSAN"
name = name2
'''
print(msg)
程式執行結果如下:
name2 = "ZHANGSAN"
name = name2
若我們要實現以下功能:用戶可以輸入自己的用戶名和密碼,則代碼執行如下:
username = input("username:")
password = input("password:")
這裡的input("")就是輸入語法.然後運行的結果就是:
username:
password:
用戶只需要輸入用戶名和密碼就可以了.但是在各類軟體和註冊的網站上,我們輸入密碼是看不見的,所以我們要用密文表示.在python中有專門的可供調用的程式.即上述代碼可以改成下麵代碼:
import getpass
username = input("username:")
password = getpass.getpass("password:")
這樣用戶在輸入密碼的時候就不能看見自己輸入的密碼了.
若在文件記憶體在著一個用戶名和密碼,這時候我們需要判斷用戶輸入的用戶名和密碼是否正確.如果正確就顯示"Welcome user 名字 login...",如果不正確就顯示"Invalid username or password!".代碼如下:
import getpass
_username = 'Bailinghu'
_password = 'abc123'
username = input("username:")
password = getpass.getpass("password:")
if _username == username and _password == password :
print("Welcome user {name} login...".format(name = username)) #format:格式,就是給大括弧內name的賦值username的值.
else :
print("Invalid username or password")
這裡使用了條件語句if-else,在這裡要註意的是,在python中,所有的一級代碼都要頂格書寫,子代碼會自動縮進.如果不這樣寫,那麼代碼執行的時候就會報"縮進錯誤"的錯誤.
接下來我們來做一個猜年齡游戲,設置翠花的年齡為56歲,當猜錯的時候顯示"think wrong.",猜對了就是"yes,you got it.".代碼如下:
age_of_cuihua = 56
guess_age = input("guess age:")
if guess_age == age_of_cuihua :
print("yes,you got it.")
else :
print("think wrong")
在上面代碼裡面執行的時候,只能猜一次,且有時候運行時候報錯"數據類型不同無法比較".為了實現持續可執行性.我們便要使用迴圈語句.如下:
age_of_cuihua = 56
while True :
guess_age = int(input("guess age:")) #把輸入的語言強制轉化成int型
if guess_age == age_of_cuihua :
print("yes,you got it.")
else :
print("think wrong")
這個程式就是不管猜對或者猜錯都會一直運行下去.若我們要該程式只能猜三次,在猜對了就停止,猜大了就顯示"think smaller",猜小了就顯示"think smaller",且實現猜完之後連續錯誤顯示"you have tried too many many times...fuck off".則代碼如下:
age_of_cuihua = 56
count = 0
while count < 3 :
guess_age = int(input("guess age:"))
if guess_age == age_of_cuihua :
print("yes,you got it.")
break #跳出迴圈
elif guess_age > age_of_cuihua : # elif在其它語言裡面就是 else if
print("think smaller...")
else :
print("think bigger!")
count += 1 # count += 1相當於count = count + 1
else:
print("you have tried too many times...fuck off")
若我們再要求猜錯三次之後程式可再詢問用戶是否繼續,則代碼如下:
age_of cuihua = 56
count = 0
while count < 3 :
guess_age = int(intput("guess age:"))
if guess_age == age_of_cuihua :
print("yes,you got it.")
break
elif guess_age > age_of_cuihua :
print("think smaller...")
else :
print("think bigger!")
count += 1
if count == 3
countine_confirm = input("do you want to keep guessing..?")
if countine_confirm != 'n' :
count = 0
接下來我們來談談for語句的語法:
for i in range(0,10,1) : #從0開始,迴圈10次,1表示補償為1,即一個一個迴圈.如果是2的話則是隔一個隔一個迴圈.i為自定義標識符,
print("loop ",i)
則程式運行結果如下:
loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
loop 7
loop 8
loop 9
再如有下程式:
for i in range(0,10) :
if i < 3 :
print("loop ",i)
else :
continue #跳出本次迴圈
print("hehe...")
則程式運行結果為:
loop 0
hehe...
loop 1
hehe...
loop 2
hehe...
接下里我們來一個表格,可以讓用戶輸入名字、年齡、工作、工資,然後自動形成一個表格.先看第一種形式:
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info1 = '''
------info of %s ------
Name:%s
Age:%d
Job:%s
Salary:%s
'''%(name,name,age,job,salary)
print(info1)
第二種形式:
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info2 = '''
------info of {_name} ------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name = name,
_age = age
_job = job
_salary = salary)
print(info2)
第三種形式:
name = input("name:")
age = int(input("age:"))
job = input("job:")
salary = input("salary:")
info3 = '''
------info of {0} ------
Name:{1}
Age:{2}
Job:{3}
Salary:{4}
'''.format(name,name,age,job,salary)
print(info3)
在這三種形式裡面,我們最常用的是第二種,因為第二種更加形象直觀的看出來代碼在那裡表示的是什麼意思.當然第三種也比較常用.但是有些時候我們只能使用第二種.假如我們輸入"翠花,56,老師,1000",三種形式最終的執行結果都是:
------info of 翠花 ------
Name:翠花
Age:56
Job:老師
salary:1000
以上就是本次的基礎知識.