1、hello world程序html
一、 在linux 下建立一個文件叫hello.py,並輸入 python
print("Hello World!")
而後執行命令:python hello.py ,輸出linux
localhost:~ jieli$ vim hello.py
localhost:~ jieli$ python hello.py
Hello World!
二、由 python 解釋器來執行vim
#!/usr/bin/env python print "hello,world"
執行: ./hello.py
便可。數組
ps:執行前需給予 hello.py 執行權限,chmod 755 hello.pyoop
三、直接調用python自帶的交互器運行代碼優化
localhost:~ jieli$ python Python 2.7.10 (default, Oct 23 2015, 18:05:06) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> print("Hello World!") Hello World!
2、變量編碼
一、spa
#_*_coding:utf-8_*_ name = "tony"
變量名爲: name,變量name的值爲:"tony"翻譯
二、變量定義的規則:
3、字符編碼
python通常用 utf-8
#!/usr/bin/env python # -*- coding: utf-8 -*- print "你好,世界"
4、用戶輸入
#!/usr/bin/env python #_*_coding:utf-8_*_ #name = raw_input("What is your name?") #only on python 2.x name = input("What is your name?") print("Hello " + name )
輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即:
#!/usr/bin/env python # -*- coding: utf-8 -*- import getpass # 將用戶輸入的內容賦值給 name 變量 pwd = getpass.getpass("請輸入密碼:") # 打印輸入的內容 print(pwd)
#input()後默認輸入字符類型,如需輸入數字,須要整數轉換int()
5、模塊初識
Python的強大之處在於他有很是豐富和強大的標準庫和第三方庫,幾乎你想實現的任何功能都有相應的Python庫支持
例子1 sys
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print(sys.argv) #輸出 $ python test.py helo world ['test.py', 'helo', 'world'] #把執行腳本時傳遞的參數獲取到了
例子2 os
#!/usr/bin/env python # -*- coding: utf-8 -*- import os os.system("df -h") #調用系統命令
結合
import os,sys os.system(''.join(sys.argv[1:])) #把用戶的輸入的參數看成一條命令交給os.system來執行
並且,本身寫的xx.py模塊只能在當前目錄下導入,若是想在系統的任何一個地方都使用怎麼辦呢? 此時你就要把這個xx.py放到python全局環境變量目錄裏啦,基本通常都放在一個叫 Python/2.7/site-packages 目錄下,這個目錄在不一樣的OS裏放的位置不同,用 print(sys.path) 能夠查看python環境變量列表。
6、pyc是什麼?
1. 解釋型語言和編譯型語言
計算機是不可以識別高級語言的,因此當咱們運行一個高級語言程序的時候,就須要一個「翻譯機」來從事把高級語言轉變成計算機能讀懂的機器語言的過程。這個過程分紅兩類,第一種是編譯,第二種是解釋。
編譯型語言在程序執行以前,先會經過編譯器對程序執行一個編譯的過程,把程序轉變成機器語言。運行時就不須要翻譯,而直接執行就能夠了。最典型的例子就是C語言。
解釋型語言就沒有這個編譯的過程,而是在程序運行的時候,經過解釋器對程序逐行做出解釋,而後直接運行,最典型的例子是Ruby。
經過以上的例子,咱們能夠來總結一下解釋型語言和編譯型語言的優缺點,由於編譯型語言在程序運行以前就已經對程序作出了「翻譯」,因此在運行時就少掉了「翻譯」的過程,因此效率比較高。可是咱們也不能一律而論,一些解釋型語言也能夠經過解釋器的優化來在對程序作出翻譯時對整個程序作出優化,從而在效率上超過編譯型語言。
此外,隨着Java等基於虛擬機的語言的興起,咱們又不能把語言純粹地分紅解釋型和編譯型這兩種。
用Java來舉例,Java首先是經過編譯器編譯成字節碼文件,而後在運行時經過解釋器給解釋成機器文件。因此咱們說Java是一種先編譯後解釋的語言。
2.python的運行過程
python解釋器的兩次運行:
當python程序運行時,編譯的結果則是保存在位於內存中的PyCodeObject中,當Python程序運行結束時,Python解釋器則將PyCodeObject寫回到pyc文件中。
當python程序第二次運行時,首先程序會在硬盤中尋找pyc文件,若是找到,則直接載入,不然就重複上面的過程。
因此咱們應該這樣來定位PyCodeObject和pyc文件,咱們說pyc文件實際上是PyCodeObject的一種持久化保存方式。
7、數據類型初識
2 是一個整數的例子。
長整數 不過是大一些的整數。
3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是複數的例子,其中-5,4爲實數,j爲虛數,數學中表示覆數是什麼?。
int(整型)
"hello world"
name_list = ['alex', 'seven', 'eric'] 或 name_list = list(['alex', 'seven', 'eric'])
基本操做:
ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))
六、字典(無序)
person = {"name": "mr.wu", 'age': 18} 或 person = dict({"name": "mr.wu", 'age': 18})
經常使用操做:
8、數據運算
算數運算:
比較運算:
賦值運算:
邏輯運算:
成員運算:
身份運算:
位運算:
運算優先級:
9、if---else
場景一:用戶登陸
# 提示輸入用戶名和密碼
# 驗證用戶名和密碼
# 若是錯誤,則輸出用戶名或密碼錯誤
# 若是成功,則輸出 歡迎,XXX!
#!/usr/bin/env python
# -*- coding: encoding -*-
import
getpass
name
=
raw_input
(
'請輸入用戶名:'
)
pwd
=
getpass.getpass(
'請輸入密碼:'
)
if
name
=
=
"alex"
and
pwd
=
=
"cmd"
:
print
(
"歡迎,alex!"
)
else
:
print
(
"用戶名和密碼錯誤"
)
場景2、猜年齡遊戲
在程序裏設定好你的年齡,而後啓動程序讓用戶猜想,用戶輸入後,根據他的輸入提示用戶輸入的是否正確,若是錯誤,提示是猜大了仍是小了
#!/usr/bin/env python # -*- coding: utf-8 -*- my_age = 28 user_input = int(input("input your guess num:")) if user_input == my_age: print("Congratulations, you got it !") elif user_input < my_age: print("Oops,think bigger!") else: print("think smaller!")
#_*_coding:utf-8_*_ __author__ = 'Alex Li' for i in range(10): print("loop:", i )
還能夠和if結合使用
for i in range(10): if i<5: continue #不往下走了,直接進入下一次loop,還能夠用break結束循環loop print("loop:", i )
11、While循環
死循環
count = 0 while True: print("你是風兒我是沙,纏纏綿綿到天涯...",count) count +=1