1 第一個程序 hello world
在Linux環境下執行 vim hello.py
#!/usr/bin/env python #指定解釋器
print("hello world")
運行Python程序
Python hello.py
- 第一行是指定解釋器,另一種寫法是#!/usr/bin/python,后者限制了Python的位置,如果bin目錄下沒有Python這個解釋器就會有問題,最好的寫法是上面的寫法。
- 如果要./hello.py這樣執行的話,需要授予755權限,chmod 755 hello.py即可
2 變量和字符編碼
變量定義規則
- 變量名只能是 字母、數字或下劃線的任意組合
- 變量名的第一個字符不能是數字
- 以下關鍵字不能聲明為變量名
- ['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']
變量賦值問題
name = "me"name2 = nameprint(name,name2)name = "me_new"print(name,name2)
執行結果
me me
me_new me
從上述結果可以看出那么重新賦值name2并沒有發生任何變化,那是因為name賦值為name2時,只是把me的內存地址給了name2,所以name2就指向了me,而重新給name賦值后,name的指向變了,但name2的指向還是指向me的內存地址,所以name2的結果還是me。
3 字符編碼
3.1 Python里面的中文寫法
在Python3下是支持中文的
print ("你好中國")
Python2的寫法
#!/usr/bin/env python
# -*- coding:utf-8 -*-print "你好中國"
顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字符和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 16 = 65536,**
注:此處說的的是最少2個字節,可能更多
UTF-8,是對Unicode編碼的壓縮和優化,他不再使用最少使用2個字節,而是將所有的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
python如何使用注釋
單行注釋 #后面加被注釋的內容
多行注釋 可以在每行前面加#或者使用'''被注釋的內容'''
4 用戶輸入
輸入名字并打印出來
#!/usr/bin/env python
_*_coding:utf-8_*_name = input("input your name:")
print(name)
getpass模塊初始
# !/usr/bin/env python
# -*- coding: utf-8 -*-import getpass# 將用戶輸入的內容賦值給 name 變量
password = getpass.getpass("input password:")# 打印輸入的內容
print(password)
4.1 3種格式化輸出
第一種%格式化輸出
#!/usr/bin/env python
#Author:wushipengname = input("name:")
job = input("job:")
salary = input("salary:")info ='''
--------info of %s----------
name:%s
job:%s
salary:%s
''' % (name, name, job, salary)info1 ='''
--------info of {name}----------
name:{name}
job:{job}
salary:{salary}
'''.format(name=name, job=job, salary=salary)
結果
name:wu
job:it
salary:3000--------info of wu----------
name:wu
job:it
salary:3000
第二種format格式化輸出
#!/usr/bin/env python
#Author:wushipengname = input("name:")
job = input("job:")
salary = input("salary:")info1 ='''
--------info of {name}----------
name:{name}
job:{job}
salary:{salary}
'''.format(name=name, job=job, salary=salary)
結果
name:wu
job:it
salary:3000--------info of wu----------
name:wu
job:it
salary:3000
第三種format數字代指變量
#!/usr/bin/env python
#Author:wushipengname = input("name:")
job = input("job:")
salary = input("salary:")info2 = '''
--------info of {0}----------
name:{0}
job:{1}
salary:{2}
'''.format(name, job, salary)
結果
name:wu
job:it
salary:3000--------info of wu----------
name:wu
job:it
salary:3000
getpass可以使輸入密碼的時候不顯示出來
5 表達式if ... else
猜年齡案例
#!/usr/bin/env python
#_*_coding:utf-8_*_age = 28
while True:age_new = int(input("input you age:"))if age_new > age:print("it's bigger than age")elif age_new < age:print("it's smaller than age")else:print("you guess it")break
while循環可以讓用戶一直猜,直到猜出來為止,break直接結束整個循環。與之類似的還有continue,continue是結束本次內循環,進行下一次外循環。
while實現限制5次,5次之后直接結束
age = 28
count = 0
while True:age_new = int(input("input you age:"))
if age_new > age:print("it's bigger than age")
elif age_new < age:print("it's smaller than age")
else:print("you guess it")count += 1
if count == 5:break
6 for循環
#!/usr/bin/env python
#_*_coding:utf-8_*_for i in range(10):
print(i)結果:
0
1
2
3
4
5
6
7
8
9
猜年齡只限制輸入5次
# !/usr/bin/env python
# _*_coding:utf-8_*_age = 28
for i in range(5):age_new = int(input("input you age:"))if age_new > age:print("it's bigger than age")elif age_new < age:print("it's smaller than age")else:print("you guess it")break