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


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

 

前言:最近新做了一個管理系統,前端已經基本完成,

但是后端人手不足沒人給我寫接口,自力更生豐衣足食,

所以決定自學python自己給自己寫接口哈哈哈哈~

 

 

先從hello world開始

輸出語法:print()

新建一個文件

hello.py

//填寫內容
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'

 

 

未完。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM