前言:最近新作了一個管理系統,前端已經基本完成,php
可是後端人手不足沒人給我寫接口,自力更生豐衣足食,html
因此決定自學python本身給本身寫接口哈哈哈哈~前端
先從hello world開始java
輸出語法:print()node
新建一個文件python
hello.pyweb
//填寫內容 print("hello , world")
運行該文件後端
這一點與Node很類似,Node運行文件的時候是node xx.js 數組
python運行是python xx.py安全
若是沒有這個文件你就運行的話會報錯
//報錯意思是該文件不存在 python: can't open file 'hello.py': [Errno 2] No such file or directory
輸入和輸出
剛剛已經提到了輸出print()
print()在括號中加上字符串,就能夠向屏幕上輸出指定的文字
//好比hello,world print("hello,world")
print()也能夠接受多個字符串,須要用逗號「,」進行隔開,而後一串輸出
print("薛小白","是","最可愛的","小前端")
//會依次打印每一個字符串,遇到逗號「,」會輸出一個空格,所以,輸出的結果是:
//薛小白 是 最可愛的 小前端
print()也能夠打印整數或者計算結果
//打印整數 print(300) //300 //計算結果 print(100 + 200) //300 //小小一組合 print('100 + 200 =', 100 + 200) //100 + 200 = 300 //前半部分當成字符串解析,後半部分計算結果
那若是咱們想讓用戶輸入一些東西怎麼辦
c語言的輸入是 scanf(),能夠規定輸入的是整數%d仍是字符串等
像前端可能用的比較多的就是input框獲取用戶輸入的內容
python的輸入是input()
name = input() print('hello,', name) //此時的name是一個變量, //第一句話是讓你輸出一個內容(此處最好的一個名字,好比:薛小白) //第二句話是進行一個輸出,同時輸出你剛剛填寫的內容 //輸入完你想輸入的內容後,記得按回車鍵
這樣就能夠輸入輸出了,可是用戶體驗是有點差的,用戶怎麼知道何時輸東西已經輸入什麼東西呢,咱們須要給他們一點提示!
name = input('please enter your name: ') print('hello,', name)
這樣再運行這個程序的時候,你會發現先打印出 please enter your name:
數據類型和變量
整數、浮點數、字符串
字符串用單引號‘’或者雙引號「」包起來,
若是字符串內部包含‘’或者「」須要使用轉義字符\
//一句話的正常寫法以下 I'm ok! //由於出現了’因此須要轉義字符 'I\'m ok!'
轉義字符能夠轉譯不少字符,\n表示換行,\\表示字符\,\t
表示製表符(就是tab)
python容許使用r‘’表示‘’內部的字符串默認不轉義
print('\\\t\\') //輸出結果:\ \ print(r'\\\t\\') //輸出結果:\\\t\\
python容許'''內容'''來表示多行內容
print('''line1 line2 line3''') line1 line2 line3
python裏有一個特殊的值,空值None,不可理解爲0
除法
//一種除法/結果是浮點數,不管是否整除結果都是浮點數 10 / 3 3.3333333333333335 9 / 3 3.0 //還有一種除法是//,稱爲地板除,兩個整數的除法仍然是整數 10 // 3 3 //取餘% 10 % 3 1
字符串和編碼
對於單個字符的編碼,python提供了ord()獲取字符的整數表示,chr()把編碼轉換爲對應的字符
ord('A') 65 ord('中') 20013 chr(66) 'B' chr(25991) '文' //若是知道字符的整數編碼,還能夠用十六禁止這麼寫str '\u4e2d\u6587' '中文'
在python中採用的格式化的方式和c語言是同樣的,用%實現格式化
Hello, %s' % 'world' 'Hello, world' 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'
%d整數、%f浮點數、%s字符串、%x十六進制整數
'Age: %s. Gender: %s' % (25, True) 'Age: 25. Gender: True' //有些時候,字符串裏面的%是一個普通字符怎麼辦?這個時候就須要轉義,用%%來表示一個%: 'growth rate: %d %%' % 7 'growth rate: 7 %'
另外一種格式化字符串的方法是使用字符串的format()
方法,它會用傳入的參數依次替換字符串內的佔位符{0}
、{1}
……,不過這種方式寫起來比%要麻煩得多:
'Hello, {0}, 成績提高了 {1:.1f}%'.format('小明', 17.125) 'Hello, 小明, 成績提高了 17.1%'
使用list和tuple
python內置的一種數據類型是列表list,list是一種有序的集合,能夠隨時添加和刪除其中的元素。其實就是js的數組
classmates = ['Michael', 'Bob', 'Tracy'] classmates ['Michael', 'Bob', 'Tracy'] classmates[0] 'Michael' classmates[1] 'Bob' classmates[2] 'Tracy'
前端獲取一個數組的長度是arr.length, python使用len()函數獲取數組個數,最後一個元素的索引是 len(classmates) - 1
若是要獲取最後一個元素,除了使用索引外,還可使用-1做爲索引,直接獲取到最後一個元素
classmates[-1] 'Tracy'
以此類推,能夠獲取倒數第二個、倒數第三個
classmates[-2] 'Bob' classmates[-3] 'Michael'
給數組添加元素append()
classmates.append('Adam') classmates ['Michael', 'Bob', 'Tracy', 'Adam']
把元素插入到指定位置insert()索引值爲i
classmates.insert(i, 'Jack') classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
刪除指定位置的元素pop(),索引值爲i
classmates.pop(1) 'Jack' classmates ['Michael', 'Bob', 'Tracy']
把某個元素替換直接賦值便可
classmates[1] = 'Sarah' classmates ['Michael', 'Sarah', 'Tracy']
數組裏的數據類型能夠不同,好比[ 'apple' , 1 , true ]
數組裏能夠包着數組
s = ['python', 'java', ['asp', 'php'], 'scheme'] len(s) 4
tuple稱爲有序元素,與list相似,可是一旦初始化沒法修改,沒有append()、insert()這樣的方法,可使用索引獲取元素但不能夠賦值成另外的元素
那麼他不可改變存在的意義是什麼呢?
由於他不可變,因此代碼更安全,能用tuple代替list就儘可能使用tuple
當你定義一個tuple時,在定義的時候,tuple的元素就必須被肯定下來
t = (1, 2) t (1, 2)
若是要定義一個空的tuple,能夠寫成()
t = () t ()
若是要定義一個只有一個元素的tuple,若是你寫成 t = (1) 表明
定義的不是tuple,是1
這個數!這是由於括號()
既能夠表示tuple,又能夠表示數學公式中的小括號,這就產生了歧義,所以,Python規定,這種狀況下,按小括號進行計算,計算結果天然是1
。
因此,只有1個元素的tuple定義時必須加一個逗號,
,來消除歧義:
t = (1,) t (1,)
//python在顯示只有1個元素的tuple時,也會加一個逗號,以避免你誤解成數學計算意義上的括號。,
最後看一個「可變」的tuple
t = ('a', 'b', ['A', 'B']) t[2][0] = 'X' t[2][1] = 'Y' t ('a', 'b', ['X', 'Y'])
//對於tuple而言是沒有改變的,改變的是list
條件判斷
//記住寫法就能夠了,不像前端有(){} //記住加:
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
結合input
birth = input('birth: ') if birth < 2000: print('00前') else: print('00後') //此時會報錯,由於input()返回的數據類型是str,str不能直接和整數比較,必須先把str轉換成整數 s = input('birth: ') birth = int(s)//轉換成整數 if birth < 2000: print('00前') else: print('00後')
循環
兩種循環,一種是for in,依次把list或tuple中的每一個元素迭代出來
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
//執行這段代碼,會依次打印names的每個元素
Michael
Bob
Tracy
計算整數之和
sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum)
若是要計算1-100怎麼辦呢,python提供一個range()函數,能夠生成一個整數序列,再經過list()轉換爲list
//range(5)生成的序列是從0開始小於5的整數 list(range(5)) [0, 1, 2, 3, 4]
第二種循環是while循環,條件知足不斷循環條件不知足退出循環
//計算100之內的奇數的和 sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
break和continue跟js同樣,此處不講
使用dict和set
dict其實就是對象
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} d['Michael']
若是key不存在,會報錯,避免key不存在的錯誤,經過in判斷key是否存在
'Thomas' in d False
也能夠經過get()判斷key是否存在
d.get('Thomas') d.get('Thomas', -1) -1
//能夠返回none或者本身指定的value,返回none時python的交互環境不顯示結果
dict佔用大量內存,內存浪費多,查找和插入速度快,list佔用內存小,查找和插入速度隨着元素增長而增長,因此dict是用空間換取時間的一種方法。
dict的key必須是不可變對象
set與dict相似,是key的集合,但不存儲value,因爲key不能重複,因此set中沒有重複的key,相似於js的Set()函數
s = set([1, 1, 2, 2, 3, 3]) s {1, 2, 3}
set添加元素add(),能夠重複添加,但不會有效果:
>>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4}
set刪除元素remove()
>>> s.remove(4) >>> s {1, 2, 3}
set能夠看做數學意義上的無序和無重複元素的集合,兩個set能夠作數學意義上的交集、並集等操做:
>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4}
不可變對象
str是不可變對象,list是可變對象
//可變對象 >>> a = ['c', 'b', 'a'] >>> a.sort() >>> a ['a', 'b', 'c'] //不可變對象 >>> a = 'abc' >>> a.replace('a', 'A') 'Abc' >>> a 'abc'
>>> a = 'abc' >>> b = a.replace('a', 'A') >>> b 'Abc' >>> a 'abc'
未完。
原文出處:https://www.cnblogs.com/yangyangxxb/p/10412154.html