web前端學習python之第一章_基礎語法(一)

web前端學習python之第一章_基礎語法(一)

 

前言:最近新作了一個管理系統,前端已經基本完成,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

相關文章
相關標籤/搜索