在開始這個(gè)話題之前,我想問大家:什么是 Python?根據(jù) Python 之父 Guido van Rossum 的話,Python是:一種高級(jí)程序語言,其核心設(shè)計(jì)哲學(xué)是代碼可讀性和語法,能夠讓程序員用很少的代碼來表達(dá)自己的想法。
創(chuàng)新互聯(lián)是一家專業(yè)提供連平企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、H5建站、小程序制作等業(yè)務(wù)。10年已為連平眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
對(duì)于我來說,學(xué)習(xí) Python 的首要原因是,Python 是一種可以優(yōu)雅編程的語言。它能夠簡(jiǎn)單自然地寫出代碼和實(shí)現(xiàn)我的想法。
另一個(gè)原因是我們可以將 Python 用在很多地方:python是真的火!它幾乎可以做各個(gè)領(lǐng)域各個(gè)平臺(tái),包括Web開發(fā),網(wǎng)絡(luò)運(yùn)維,科學(xué)計(jì)算,3D游戲開發(fā),圖形界面開發(fā),人工智能等。
除了大家熟悉的知乎、豆瓣,已經(jīng)有越來越多的公司開始用 Python 來快速搭建網(wǎng)站產(chǎn)品。相應(yīng)的,也有越來越多的公司開設(shè)了Python Web的職位,那么讓我們來學(xué)習(xí)一下 Python 吧。
Python基礎(chǔ)
1. 變量
你可以把變量想象成一個(gè)用來存儲(chǔ)值的單詞。我們看個(gè)例子。
Python 中定義一個(gè)變量并為它賦值是很容易的。假如你想存儲(chǔ)數(shù)字 1 到變量 “one” ,讓我們?cè)囋嚳矗?/p>
one = 1
超級(jí)簡(jiǎn)單吧?你只需要把值 1 分配給變量 “one” 。
two = 2
some_number = 10000
只要你想,你可以把任意的值賦給任何其他的變量。正如你從上面看到的那樣,變量 “two” 存儲(chǔ)整型變量 2 ,變量 “some_number” 存儲(chǔ) 10000 。
除了整型,我們還可以使用布爾值(True/Flase)、字符串、浮點(diǎn)型和其他數(shù)據(jù)類型。
# booleanstrue_boolean = Truefalse_boolean = False# stringmy_name = "Leandro Tk"# floatbook_price = 15.80
2. 控制流程:條件語句
“If”使用一個(gè)表達(dá)式來判斷一個(gè)語句是True 還是False ,如果是True,那么執(zhí)行if內(nèi)的代碼,例子如下:
if True:
print("Hello Python If")if 2 > 1:
print("2 is greater than 1")
2 比 1 大,所以 print 代碼被執(zhí)行。
當(dāng)“if”里面的表達(dá)式是 false 時(shí),“else” 語句將會(huì)執(zhí)行。
if 1 > 2:
print("1 is greater than 2")else:
print("1 is not greater than 2")
1 比 2 小,所以“else”里面的代碼會(huì)執(zhí)行。
你也可以使用“elif”語句:
if 1 > 2:
print("1 is greater than 2")elif 2 > 1:
print("1 is not greater than 2")else:
print("1 is equal to 2")
3. 循環(huán)和迭代
在 Python 中,我們可以用不同的形式進(jìn)行迭代。我會(huì)說下 while 和 for。
While 循環(huán):當(dāng)語句是 True 時(shí),while 內(nèi)部的代碼塊會(huì)執(zhí)行。所以下面這段代碼會(huì)打印出 1 到 10 。
num = 1while num <= 10:
print(num)
num += 1
while 循環(huán)需要循環(huán)條件,如果條件一直是 True ,它將會(huì)一直迭代,當(dāng) num 的值為 11 時(shí),循環(huán)條件為 false 。
另一段代碼可以幫你更好的理解 while 語句的用法:
loop_condition = Truewhile loop_condition:
print("Loop Condition keeps: %s" %(loop_condition))
loop_condition = False
循環(huán)條件是 True 所以會(huì)一直迭代,直到為 False 。
For 循環(huán):你可以在代碼塊上應(yīng)用變量 “num” ,而 “for” 語句將為你迭代它。此代碼將打印與 while 中相同的代碼:從 1 到 10 。
for i in range(1, 11):
print(i)
瞧見沒?這太簡(jiǎn)單了。i 的范圍從 1 開始一直到第 11 個(gè)元素(10是第十個(gè)元素)
這么火的Python,只用一行,能夠?qū)崿F(xiàn)哪些好玩的功能呢?
1、一行代碼啟動(dòng)一個(gè)Web服務(wù)
python -m SimpleHTTPServer 8080 # python2
python3 -m http.server 8080 # python3
2、一行代碼實(shí)現(xiàn)變量值互換
a, b = 1, 2; a, b = b, a
3、一行代碼解決FizzBuzz問題
FizzBuzz問題:打印數(shù)字1到100, 3的倍數(shù)打印“Fizz”, 5的倍數(shù)打印“Buzz”, 既是3又是5的倍數(shù)的打印“FizzBuzz”
print(' '.join(["fizz"[x % 3 * 4:]+"buzz"[x % 5 * 4:] or str(x) for x inrange(1, 101)]))
4、一行代碼輸出特定字符”Love”拼成的心形
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30,30)]) for y in range(30, -30, -1)]))
5、一行代碼輸出Mandelbrot圖像
Mandelbrot圖像:圖像中的每個(gè)位置都對(duì)應(yīng)于公式N=x+y*i中的一個(gè)復(fù)數(shù)
print('\n'.join([''.join(['*'if abs((lambda a: lambda z, c, n: a(a, z, c, n))(lambda s, z, c, n: z
6、一行代碼打印九九乘法表
print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)])for x in range(1, 10)]))
7、一行代碼計(jì)算出1-100之間的素?cái)?shù)(兩個(gè)版本)
print(' '.join([str(item) for item in filter(lambda x: not [x % i for i inrange(2, x) if x % i == 0], range(2, 101))]))
print(' '.join([str(item) for item in filter(lambda x: all(map(lambda p: x % p!= 0, range(2, x))), range(2, 101))]))
8、一行代碼輸出斐波那契數(shù)列
print([x[0] for x in [(a[i][0], a.append([a[i][1], a[i][0]+a[i][1]])) for a in([[1, 1]], ) for i in range(30)]])
9、一行代碼實(shí)現(xiàn)快排算法
qsort = lambda arr: len(arr) > 1 and qsort(list(filter(lambda x: x <= arr[0],arr[1:]))) + arr[0:1] + qsort(list(filter(lambda x: x > arr[0], arr[1:]))) orarr
10、一行代碼解決八皇后問題
[__import__('sys').stdout.write('\n'.join('.' * i + 'Q' + '.' * (8-i-1) for iin vec) + "\n========\n") for vec in__import__('itertools').permutations(range(8)) if 8 == len(set(vec[i]+i for iin range(8))) == len(set(vec[i]-i for i in range(8)))]
11、一行代碼實(shí)現(xiàn)數(shù)組的flatten功能:將多維數(shù)組轉(zhuǎn)化為一維
flatten = lambda x: [y for l in x for y in flatten(l)] if isinstance(x, list)else [x]
12、一行代碼實(shí)現(xiàn)list, 有點(diǎn)類似與上個(gè)功能的反功能
array = lambda x: [x[i:i+3] for i in range(0, len(x), 3)]
13、一行代碼實(shí)現(xiàn)求解2的1000次方的各位數(shù)之和
print(sum(map(int, str(2**1000))))
總結(jié):
隨著人工智能的發(fā)展與應(yīng)用,Python編程語言受到世界各界人士的關(guān)注,編程圈金句從“人生苦短,我學(xué)Python”轉(zhuǎn)變成了“學(xué)完 Python,可以上天”,Python工程師也成為一個(gè)熱門職業(yè),就業(yè)薪資高,發(fā)展前景廣闊。
盡管我們都會(huì)調(diào)侃「又騙我Python」,但在編程語言排行榜中,因?yàn)槿斯ぶ悄艿幕馃幔惨蚱湔Z言本身對(duì)新手友好、易于上手、功能強(qiáng)大、高效靈活,年輕Python 的「受歡迎度」就這樣直線上升,甚至已經(jīng)威脅到Java、C/C++多年打下的江山了。
Python儼然已經(jīng)成為2018最火的編程語言,雖然Python不能讓你找到對(duì)象,但是你決對(duì)可以成為有錢的單身狗。還有具有現(xiàn)實(shí)意義的一點(diǎn),干Python的,薪資相對(duì)都不錯(cuò),當(dāng)然你需要花一段時(shí)間來學(xué)習(xí)Python。
新聞名稱:Python為啥這么牛?一行Python代碼除了畫圖竟然還有這些功能!
文章位置:http://m.newbst.com/article32/pgcisc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、App設(shè)計(jì)、響應(yīng)式網(wǎng)站、虛擬主機(jī)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)