Edit the > 2018/6/15 11:26:53
1認識Python
人生苦短,我用python
- 優雅,明確,簡單 是python設計哲學
- python的設計目標之一, 是讓代碼具備高度的可閱讀性
- python 被廣泛用於web程序,GUI開發,操作系統,科學計算,人工智能,遊戲等領域;
python的特點
- 是一種動態語言
- 被設計成可擴充的
- 是一種完全面向對象的語言
- 語法簡潔,開發效率高,維護成本低
- 跨平臺,功能強大
2python的版本與選擇
- python2.x與python3.x
- python核心團隊計劃在2020年停止支持python2
- python2.7是最後一個python2.x版本
- 建議使用pytho3.6.x進行學習
3安裝python開發環境
下載pythonhttps://www.python.org/downloads/release/python-365/
- windows環境
-
- macos環境:python下是默認python2的. 所以要切換python 很簡單. 直接敲python3 即可
- linux環境
- 關於IDE的選擇:PyCharm
4基本語法規則
4.1選擇編譯
#!/use/bin/python3
#在mac和linux環境下要加#!/use/bin/python3 註明解釋器要用這個編譯
4.2註釋
# 單行註釋
'''
多行註釋
'''
"""
多行註釋
"""
4.3代碼塊
# python是用空格來代表代碼塊的 不像js 和java 等於語言裏面的 {}
if True:
print("true")
else:
print("false")
4.4數據結構
- Number
- int(x [,base ]) 將x轉換爲一個整數
- long(x [,base ]) 將x轉換爲一個長整數
- float(x ) 將x轉換到一個浮點數
- complex(real [,imag ]) 創建一個複數 *
- str(x ) 將對象 x 轉換爲字符串
- repr(x ) 將對象 x 轉換爲表達式字符串
- eval(str ) 用來計算在字符串中的有效Python表達式,並返回一個對象
- tuple(s ) 將序列 s 轉換爲一個元組
- list(s ) 將序列 s 轉換爲一個列表
- chr(x ) 將一個整數轉換爲一個字符
- unichr(x ) 將一個整數轉換爲Unicode字符
- ord(x ) 將一個字符轉換爲它的整數值
- hex(x ) 將一個整數轉換爲一個十六進制字符串
- oct(x ) 將一個整數轉換爲一個八進制字符串
- String
- List(列表)
- Tuple(元組)
- Sets(集合)
Dictionary(字典)
a = 10
b = 2.3
c = True
d = 3 + 4j # 複數 j複數單位
print(a)
print(b)
print(c)
print(d)type() 判斷數據類型
print(type(a))
print(type(b))
print(type(c))
print(type(d))
4.5變量
# 變量
'''
聲明時不付值是不會被使用的
第一個字符必須是字母或_開頭
'''
a1 = 200
b1 = c1 = d1 = e1 = 1 # 多變量賦值
a2, b2, c2 = 1, 2.3, "我" # 分別賦值
print(b1, c1, d1, e1)
print(a2, b2, c2)
del a1 # 刪 對象
4.6運算符
4.6.1算術運算符
print(5 ** 3) # 冪運算 5的3次方
print(7 // 3) # 不要餘數 取整商
4.6.2比較運算符
和其他語言相同
4.6.3賦值運算符
和其他語言相同
4.6.4邏輯運算符
and or not 與或非 #python
&& || ! 其他編程語言
4.6.5位運算符
按照二進制位 來運算的
& 與
| 或
^ 亦或
~ 按類取反
移位 >>右 <<左
4.6.6成員運算符
in 在
not in 不在
在一個集合裏有還是沒有 該值
4.6.7身份運算符
表示對象的存儲單元的
is
is not
是不是引致一個對象
4.6.8運算符優先級
指數>位運算>乘除摸加減等
4.7string類型操作
# python中沒有字符類型
#拼接
a = 'asdf'
b = "asdfasd"
c = """
多行
字符
串
"""
print(a + b + c)
# 在cd之間插入其他字符
str1 = "abcdefg"
print(str1[:3] + "123" + str1[3:])
# 截取
print(str1[2:5])
# 格式化
print('ABCD%d' %(123))
print('%x' %(100))
print("name:%s,age:%d" %("Tom",21))
4.7函數
def hello(str):
print("hello: %s" % (str))
hello("tom")
def fun01(a, b):
return a + b
print(fun01(1, 2))
def fun02(a=2, b=4):
return a + b
print(fun02(2, 2))
print(fun02())
4.8變量的作用域
'''
L (local) 局部作用域
E (Enclosing) 閉包函數外的函數中
G (Clobal) 全局作用域
B (Built-in) 內建作用域
'''
x = int(32) # 建內作用域
g_a = 0 # 全局作用域
def function03():
o_c = 1 # 閉包作用域
def function04():
i_b = 3 # 局部作用域
.
#空函數 pass佔位符
def function05():
pass
4.9模塊
4.10流程控制
# 循環語句
n = 100
sum = 0
counter = 1
while counter <= n:
sum += counter
counter += 1
print(sum)
# 嵌套
if True:
if True:
pass
else:
pass
else:
pass
# 循環輸入;
while True:
mun = int(input("請輸出一個數字"))
print("輸出的數字的是", mun)
counter = 0
while counter < 3:
print("counter:", counter)
counter += 1
else:
print("counter", counter)
# 在python 後面是可以添加else 語句的
counter = 0
while counter < 3:
print("counter:", counter)
counter += 1
else:
print("else-counter", counter)
# for 循環語句 後面是可以添加else 語句的
for a in [1, 2, 2.51, 5]:
print(a)
else:
print("haha")
for a in range(0,5):
print(a)
for a in range(3,5):
print(a)
for a in range(1,5,2):
print(a)
4.11 內置數據結構
# 列表爲例
list=["abcd",123,3.14,True]
print(list*3)#連續輸出3次
print(list[0])
print(list[3])
list2=["haha",100]
#加號拼接
print(list+list2)
#截取片段
list[0]="ABCD"
list[1:3]=[321,99.99]
# 集合
set1 = {"tom", "marry", "jack", "rose", "tom"}
set2 = set("asdfqwer")
print(set1) # 重複的tom 被去掉了
# 判斷裏面是不是有這個集合元素
if "jeck" in set1:
print("zai")
else:
print("bu zai")
set3 = set('adsa12345')
print(set2)
print(set3)
# 集合的差集
print(set2 - set3)
# 集合的並集
print(set2 | set3)
# 集合的交集
print(set2 & set3)
# 不同是存在的
print(set2 ^ set3)
- List(列表)
可以看成數組
[var1,var2,var3,…] - Tuple(元祖)
可以看成數組.但是裏面的元素不能修改.只讀的列表
(var1,var2,var3,…) - Sets(集合)
可以看成數組.但是裏面的元素不能重複
{var1,var2,var3,…} - Dictionary(字典)
以鍵值對成堆出現的
{key1:var1,key2:var2,key3:var3,…}
strint ,元祖 ,列表 都屬於序列 所以都是for循環