1.行和縮進css
Python中,不使用括號來表示代碼的類和函數定義塊或流程控制。html
參考:https://www.w3cschool.cn/python3/python3-basic-operators.html
python
官方中文文檔參考:https://docs.python.org/zh-cn/3.7/shell
代碼塊是由行縮進,縮進位的數目是可變的,可是在塊中的全部語句必須縮進相同的量。app
以下所示:函數
a = 100 if a >= 0: print(a) else: print(-a)
// 一樣的,建議一個tab設置成4個空格(Editor->Code Sytle)編碼
2.註釋 spa
「#」號以後字符和到物理行是註釋的一部分,Python解釋器會忽略它們。.net
多行註釋,使用三引號 """ """(單引號亦可)scala
# First comment print "Hello, Python!"; # second comment
3.引號
Python接受單引號('),雙引號(「)和三(''或」「」)引用,以表示字符串常量,只要是同一類型的引號開始和結束的字符串。
三重引號能夠用於跨越多個行的字符串。例如,全部下列是合法的:
word = 'word' sentence = "This is a sentence." paragraph = """This is a paragraph. It is made up of multiple lines and sentences."""
4.分號
和scala同樣,分號是可選的。通常而言能夠省略
a) 數字
b) 字符串
c) 列表
d) 元組
e) 字典
f) set
補充還有布爾值:True和False
數據類型之間的轉換:https://www.cnblogs.com/mywood/p/7428138.html
python中定義變量時不須要顯示指定變量類型,若是要查看數據類型,可使用type(var),如下爲python中變量使用的典型語法:
#基本使用(連scala中的val都省了,全自動類型推斷) counter = 100 # 整型 miles = 1000.0 # 浮點 name = "John" # 字符串
1.字符串
字符串的API能夠參考String Methods
經常使用操做,參考:https://www.runoob.com/python/python-strings.html
在python3中,默認的字符串編碼是Unicode,提供了相似
ord()——字符的整數表示(例如A:65)
decode()/encode()——字符串與bytes之間的互轉
len()——表示字符串長度等常規方法
取值支持str[1],str[1:8]這樣的區間取值,直接取出某些字符串中的指定位字符。步長也是支持的str[0:5:2]——切片
一樣,字符串支持for in的迭代!
字符串格式化與C保持一致:
print("your name is %s,you are %s" % ("Bob", "Good"))
更加推薦的是format函數:https://www.runoob.com/python/att-string-format.html
2.編碼
一般在py文件的頭加上如下兩行:來防止亂碼
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
第一行和shell同樣,告訴liunx系列系統這是一個可執行程序
第二行則用於指定編碼(固然文件也要指定編碼,這部分在pycharm中也應該設定編碼)
3.佔位符
>>> print('it is %s,i %s it' %('good','like')) it is good,i like it
和C的佔位符相似,再也不贅述;相同功能的有format方法:
>>> 'Hello, {0}, 成績提高了 {1:.1f}%'.format('小明', 17.125) 'Hello, 小明, 成績提高了 17.1%'
1.List列表
與普通列表list的定義同樣是個可變有序列表,注意python的寫法:中括號[]
>>> list = ['i','love','chnia'] >>> list ['i', 'love', 'chnia']
訪問使用從0開始的下標訪問,而且支持正負訪問:
>>> list[0] 'i' >>> list[1] 'love' >>> list[-1] 'chnia'
元素的增刪改操做:完整的操做在文檔第五章
關於循環遍歷刪除的坑,參考:http://www.javashuo.com/article/p-towhjtmu-do.html
# 末尾插入元素 >>> list.append('you') >>> list ['i', 'love', 'chnia', 'you'] # 指定位置插入元素 >>> list.insert(1,'really') >>> list ['i', 'really', 'love', 'chnia', 'you'] # 刪除末尾元素 >>> list.pop() 'you' >>> list ['i', 'really', 'love', 'chnia'] # 刪除指定位置元素,remove刪除指定元素,clear清空列表 >>> list.pop(1) 'really' >>> list ['i', 'love', 'chnia'] >>>
list保存的還能夠是不一樣類型的元素:
>>> list = [1,'love',True] >>> list [1, 'love', True] >>>
list的遍歷:
#!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list = ['html', 'js', 'css', 'python'] # 方法1 print '遍歷列表方法1:' for i in list: print ("序號:%s 值:%s" % (list.index(i) + 1, i)) print '\n遍歷列表方法2:' # 方法2 for i in range(len(list)): print ("序號:%s 值:%s" % (i + 1, list[i])) # 方法3 print '\n遍歷列表方法3:' for i, val in enumerate(list): print ("序號:%s 值:%s" % (i + 1, val)) # 方法3 print '\n遍歷列表方法3 (設置遍歷開始初始位置,只改變了起始序號):' for i, val in enumerate(list, 2): print ("序號:%s 值:%s" % (i + 1, val))
2.tuple元組
tuple就是不可變的list了,表示上使用括號()
>>> tuple = ('i','love',10086) >>> tuple ('i', 'love', 10086)
隱式使用tuple能夠進行多重賦值:
a,b = 1,2
# 利用隱式tuple能夠簡便的交換兩個元素的值
x,y = y,x
這裏爲了不歧義,定義一個元素的元組時,須要在末尾加逗號,,Python在顯示只有一個元素的時候也會加上逗號
>>> tuple1 = (1,)
訪問和list同樣,使用下標:
支持zip拉鍊操做:https://www.runoob.com/python/python-func-zip.html
>>> tuple[1] 'love' >>>
1.條件判斷
直接從示例看起:注意冒號
age = 20 if age >= 18: print('your age is', age) print('adult')
根據Python的縮進規則,若是if
語句判斷是True
,就把縮進的兩行print語句執行了,不然,什麼也不作。
結合else的語法以下:(注意else後的冒號:)
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
python也支持:
if x: print('True')
只要x
是非零數值、非空字符串、非空list等,就判斷爲True
,不然爲False
。
2.循環
for
和scala有點兒相似(固然,Python先於scala出現),一樣注意冒號:
>>> list = [1,'love',True] >>> for e in list: print(e) 1 love True
一樣,python提供相似scala的to函數的range用於控制循環:
range是左閉右開的;若是須要控制起始與步長,可使用range(初始值,結束值,步長)
sum = 0 for x in range(101): sum = sum + x print(sum)
須要使用下標時能夠經過相關函數使用:
list1 = ['i', 'love', 'china'] for i, e in enumerate(list1): print(i, e)
while
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
break和continue一樣支持,可是這樣會形成程序的分支混亂,慎用!
循環的else能夠在循環正常結束時執行!
list1 = ['i', 'love', 'china'] for i, e in enumerate(list1): print(i, e) else: print("正常執行完成")
1.dict
Python內置了字典:dict的支持,dict全稱dictionary,在其餘語言中也稱爲map
定義的方式是使用冒號分割,大括號包圍:
>>> d = {'M': 80,'F': 90} >>> d {'M': 80, 'F': 90}
# 下標風格的取值,key不存在時爲賦值
>>> d['M']
80
使用dict也能夠定義:
d1 = dict(a=99, b=98)
相似scala的getOrElse方法進行取值:
>>> d.get('Thomas') # 返回空,None >>> d.get('Thomas', -1) -1
須要注意的是因爲須要計算key的hash來肯定位置,因此key必須是不可變對象,例如整型、字符串
刪除鍵值對:
是否存在key:
'a' in d1
遍歷keys values可使用keys() values()等
參考:http://www.javashuo.com/article/p-gakvarct-cm.html
2.set
和其餘語言的set相似的定義,可是注意語法,須要給出一個list做出輸入來產生一個set
>>> s = set(['i',1,'love']) >>> s {'i', 'love', 1}
能夠經過add(key),remove(key)進行key的增刪
由python這類語言的for能夠知道,可使用for進行遍歷:for e in s
更多python3基礎知識,參考菜鳥教程:https://www.runoob.com/python3/python3-tutorial.html
在函數內對全局變量操做賦值?:http://www.javashuo.com/article/p-scpbccsz-gt.html