狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

中企動(dòng)力 > 頭條 > python3實(shí)例開發(fā)

網(wǎng)站性能檢測評(píng)分

注:本網(wǎng)站頁面html檢測工具掃描網(wǎng)站中存在的基本問題,僅供參考。

python3實(shí)例開發(fā)

Python入門之走向編程第一步一個(gè)例子開始 企業(yè)視頻課程

img

索尼亞

關(guān)注

Of course, we can use Python for more complicated tasks than adding two and two together. For instance, we can write an initial sub-sequence of the Fibonacci series as follows當(dāng)然,我們可以使用Python來完成比把兩個(gè)和兩個(gè)加在一起更復(fù)雜的任務(wù)。例如,我們可以寫出斐波那契級(jí)數(shù)的初始子序列如下

>>> # Fibonacci series:

... # the sum of two elements defines the next

... a, b = 0, 1

>>> while b < 10:

... print(b)

... a, b = b, a+b

...

1

1

2

3

5

8

The first line contains a multiple assignment: the variables a and b simultaneously get the new values 0 and 1. On the last line this is used again, demonstrating that the expressions on the right-hand side are all evaluated first before any of the assignments take place. The right-hand side expressions are evaluated from the left to the righ

第一行包含多個(gè)賦值:變量A和B同時(shí)獲得新值0和1。在最后一行中,再次使用,表明在任何賦值發(fā)生之前首先對(duì)右邊的表達(dá)式進(jìn)行求值。右邊表達(dá)式由左到右進(jìn)行計(jì)算。

The while loop executes as long as the condition (here: b < 10) remains true. In Python, like in C, any non-zero integer value is true; zero is false. The condition may also be a string or list value, in fact any sequence; anything with a non-zero length is true, empty sequences are false. The test used in the example is a simple comparison. The standard comparison operators are written the same as in C: < (less than), > (greater than), == (equal to), <= (less than or equal to), >= (greater than or equal to) and != (not equal to).只要條件(這里:b<10)成立,while循環(huán)就執(zhí)行。在Python中,像在C中一樣,任何非零整數(shù)值都是true;0是false。條件也可以是字符串或列表值,實(shí)際上是任何序列;具有非零長度的任何東西都是真的,空序列是錯(cuò)誤的。在示例中使用的測試是一個(gè)簡單的比較。標(biāo)準(zhǔn)比較運(yùn)算符的編寫與C:<(小于)、>(大于)、=(等于)、<=(小于或等于)、>=(大于或等于)和!=(不等于)。

The body of the loop is indented: indentation is Python’s way of grouping statements. At the interactive prompt, you have to type a tab or space(s) for each indented line. In practice you will prepare more complicated input for Python with a text editor; all decent text editors have an auto-indent facility. When a compound statement is entered interactively, it must be followed by a blank line to indicate completion (since the parser cannot guess when you have typed the last line). Note that each line within a basic block must be indented by the same amount.循環(huán)體是縮進(jìn)的:縮進(jìn)是Python對(duì)語句進(jìn)行分組的方式。在交互式提示符上,您必須為每個(gè)縮進(jìn)線鍵入一個(gè)制表符或空格。在實(shí)踐中,您將為Python編寫一個(gè)更復(fù)雜的文本編輯器,所有的文本編輯器都有一個(gè)自動(dòng)縮進(jìn)工具。當(dāng)一個(gè)復(fù)合語句交互輸入時(shí),必須跟隨一條空白行來表示完成(因?yàn)榻馕銎鞑荒懿鲁瞿斎肓俗詈笠恍校?。請注意,基本塊中的每一行必須以相同的數(shù)量縮進(jìn)。

The print() function writes the value of the argument(s) it is given. It differs from just writing the expression you want to write (as we did earlier in the calculator examples) in the way it handles multiple arguments, floating point quantities, and strings. Strings are printed without quotes, and a space is inserted between items, so you can format things nicely, like this:Print()函數(shù)寫入給定的參數(shù)的值。它不同于只寫表達(dá)式(正如我們前面在計(jì)算器示例中所寫的),它處理多個(gè)參數(shù)、浮點(diǎn)量和字符串的方式不同。字符串不帶引號(hào)打印,在項(xiàng)目之間插入一個(gè)空格,這樣就可以很好地格式化,像這樣:

>>> i = 256*256

>>> print('The value of i is', i)

The value of i is 65536

The keyword argument end can be used to avoid the newline after the output, or end the output with a different string:關(guān)鍵字參數(shù)結(jié)束可以用來避免輸出后的換行符,或者用不同的字符串結(jié)束輸出:

>>> a, b = 0, 1

>>> while b < 1000:

... print(b, end=',')

... a, b = b, a+b

...

1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

Footnotes:注意:

Since ** has higher precedence than -, -3**2 will be interpreted as -(3**2) and thus result in -9. To avoid this and get 9, you can use (-3)**2.

由于**比-A具有更高的優(yōu)先級(jí),-*** 2將被解釋為-(3**2),從而導(dǎo)致-9。為了避免這個(gè)問題,得到9,你可以使用(-3)** 2。

Unlike other languages, special characters such as \n have the same meaning with both single ('...') and double ("...") quotes. The only difference between the two is that within single quotes you don’t need to escape " (but you have to escape \') and vice versa.不像其他語言,特殊字符如\與雙單引號(hào)(‘...’)和雙引號(hào)(“....”)有相同的作用,唯一的不同是在雙單引號(hào)時(shí)您不需要避免雙引號(hào),但是要避免\',反之亦然。

「Python實(shí)例」生成16位隨機(jī)序列號(hào) 企業(yè)視頻課程

img

追命

關(guān)注

[Python實(shí)例] 生成16位隨機(jī)序列號(hào)

代碼:

結(jié)果:rhAP-GP5B-Q8Dy-Wg74

import string,random

field=string.letters+string.digits

def getRandom(size):

return "".join(random.sample(field,size))

def generate(group,size):

return "-".join([getRandom(size) for i in range(group)])

print generate(4,4)

小羊?qū)W編程之Python爬蟲實(shí)例 營銷視頻課程

img

Zenaide

關(guān)注

Python爬蟲學(xué)習(xí)了一些時(shí)間,今天看到某網(wǎng)的文章,平時(shí)只是一部分一部分復(fù)制粘貼,有時(shí)甚至不讓復(fù)制。于是想利用Python爬蟲下載文章保存到本地。哈哈。為了便于學(xué)習(xí)理解,直接上代碼加注釋。重點(diǎn)學(xué)習(xí)穩(wěn)中有降模塊的用法。

from urllib.request import urlopen

from bs4 import BeautifulSoup #Beautiful Soup 是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫

import html5lib #html5lib 是一個(gè) Ruby和 Python用來解析 HTML文檔的類庫,支持HTML5

import time # Python time時(shí)間模塊

import os

import requests #requests是python的一個(gè)HTTP客戶端庫

from time import sleep #,使用sleep函數(shù)可以讓程序休眠延時(shí)。

def Download_Novel(html): #定義一個(gè)下載文章函數(shù)。

bsObj=BeautifulSoup(html,'html5lib') #利用BeautifulSoup析html頁面

chapter=bsObj.find("p",{"class","read-content j_readContent"}) #獲取文章內(nèi)容

title=bsObj.find("",{"class","j_chapterName"}) #獲取文章標(biāo)題。

print (chapter.get_text()) #打印出文章內(nèi)容。

print (title) #打印出文章標(biāo)題。

fo=open("d:/001.txt","a") #打開文件

fo.write(chapter.get_text())#寫入文件

fo.close #close()方法用于關(guān)閉一個(gè)已打開的文件

bsoup=bsObj.find("a",{"id":"j_chapterNext"}) #獲取下一章節(jié)文章內(nèi)容

html2="http:"+bsoup.get('href')+""#獲取下一章節(jié)文章URL

return (urlopen(html2))

html=urlopen("https://xxxxxxxxxx/chapter/5889870403237101/15810501355231395")

i=1

while(i<10): #下載章節(jié)數(shù)目

html=Download_Novel(html)

i=i+1

start = time.time() #程序運(yùn)行開始時(shí)間

Download_Novel(html)

sleep(1) #讓程序延時(shí)

c = time.time() - start #程序運(yùn)行結(jié)束時(shí)間

print('保存文章結(jié)束,運(yùn)行共耗時(shí):%0.2f'%(c))

運(yùn)行結(jié)果如下圖:

文件內(nèi)容保存到D盤的001.txt文件中。

文中不妥之處請朋友們指正!謝謝

干貨!Python入門基礎(chǔ)之面向?qū)ο蠖侯惡蛯?shí)例、方法 流量視頻課程

img

閔鵬笑

關(guān)注

前面

一篇

文章我介紹了python面向?qū)ο蟮幕局R(shí),鏈接在最下面。初步解釋了面向?qū)ο蠛兔嫦驅(qū)ο蟮膬?yōu)點(diǎn),今天就開始正式用代碼來展現(xiàn)面向?qū)ο蟆?/p>

1、利用class創(chuàng)建類

Python中,創(chuàng)建類的語句是如下所示

先解釋一下,class后面跟的是類名,括號(hào)里面是基類(也成為父類)python3中默認(rèn)繼承object。里面的函數(shù)稱為方法(注意,嚴(yán)格來說,python中,位于類里面的def語句才能被稱為方法,而在類外面定義的def只能被稱為函數(shù))。示例如下

2、定義類的屬性,

我們講了類是有屬性的,那么如何定義類的屬性,有以下兩種種:

1、 直接在類里面定義,這里屬性是位于類的變量空間里面,整個(gè)類中可以直接訪問。

2、 在構(gòu)造函數(shù)里面定義,這是對(duì)象的屬性,訪問時(shí)要通過self訪問。

3、構(gòu)造函數(shù)__init__

類是由屬性構(gòu)成的,當(dāng)我們在定義一個(gè)類的時(shí)候,我們需要對(duì)類的屬性進(jìn)行設(shè)置,這時(shí)候就用到了構(gòu)造函數(shù):__init__(self,[……]),我們在構(gòu)造函數(shù)中的參數(shù)是賦值給self,因?yàn)樵趏op中,self就是實(shí)例對(duì)象,name、age、weight變成了狀態(tài)信息。

我們接上面說為什么它繼承object,通過dir()我們可以打印出他的屬性,發(fā)現(xiàn)他繼承了很多方法,在后面的使用中會(huì)比較方便。(這里涉及到了新式類和老式類的問題,在python3中全都是新式類,新式類更加強(qiáng)大)。

4、訪問控制

Python不像Java中有明確的訪問控制方法,說白了就是沒有訪問控制。不過有一套約定俗成的方法:全靠自覺

變量名前面無下劃線,可以公開訪問。

變量名前面帶有一個(gè)下劃線:類的私有屬性。

變量名前面帶有兩個(gè)下劃線:部分私有屬性,類里面可以訪問,實(shí)例化之后不能直接訪問。

再說一遍:全靠自覺!其實(shí)它們無論怎樣都是可以訪問的。這樣只是代碼規(guī)范,方便以后的代碼維護(hù)。

5、定義類的方法

函數(shù)和方法的區(qū)別:前面我講過,python在類中的def才能被稱為方法,因?yàn)楹瘮?shù)和方法的區(qū)別就是它們是否依附于一個(gè)類。函數(shù)直接通過函數(shù)名調(diào)用,方法通過類實(shí)例化調(diào)用,方法是類的一個(gè)屬性。

方法的訪問控制和類的屬性一樣,也是沒有,定義方法也就差不多,如下:

綁定方法:

你們可能注意到了,每個(gè)方法中 都有self,這個(gè)self是綁定類的,表示函數(shù)是類的屬性。

self 變量用于在類實(shí)例方法中引用方法所綁定的實(shí)例。因?yàn)榉椒ǖ膶?shí)例在任何方法調(diào)用中總是作為第一個(gè)參數(shù)傳遞的,self 被選中用來代表實(shí)例。你必須在方法聲明中放上 self(你可能已經(jīng)注意到了這點(diǎn)),但可以在方法中不使用實(shí)例(self)。如果你的方法中沒有用到 self , 那么請考慮創(chuàng)建一個(gè)常規(guī)函數(shù),除非你有特別的原因。畢竟,你的方法代碼沒有使用實(shí)例,沒有與類關(guān)聯(lián)其功能,這使得它看起來更像一個(gè)常規(guī)函數(shù)。在其它面向?qū)ο笳Z言中,self 可能被稱為 this。

方法裝飾器:

@classmenthod類方法,調(diào)用的時(shí)候用類名,不是先生成對(duì)象,由對(duì)象調(diào)用

@property像訪問屬性一樣調(diào)用方法,就是指不用加括號(hào)了。

如下:我在上面的那個(gè)類里面加了兩個(gè)方法,用了這兩個(gè)修飾器。

使用方法如下:

上一篇:Python 入門基礎(chǔ)之面向?qū)ο筮^程-面向過程概述

下一篇介紹類的繼承、運(yùn)算符重載(鉤子)等。歡迎關(guān)注。

過年回來程序員分享Python爬取網(wǎng)頁信息例子,漲知識(shí)了! 公司視頻課程

img

人英

關(guān)注

爬蟲涉及的技術(shù)包括但不限于熟練一門編程語言(這里以 Python 為例) HTML 知識(shí)、HTTP 協(xié)議的基本知識(shí)、正則表達(dá)式、數(shù)據(jù)庫知識(shí),常用抓包工具的使用、爬蟲框架的使用、涉及到大規(guī)模爬蟲,還需要了解分布式的概念、消息隊(duì)列、常用的數(shù)據(jù)結(jié)構(gòu)和算法、緩存,甚至還包括機(jī)器學(xué)習(xí)的應(yīng)用,大規(guī)模的系統(tǒng)背后都是靠很多技術(shù)來支撐的。數(shù)據(jù)分析、挖掘、甚至是機(jī)器學(xué)習(xí)都離不開數(shù)據(jù),而數(shù)據(jù)很多時(shí)候需要通過爬蟲來獲取,因此,即使把爬蟲作為一門專業(yè)來學(xué)也是有很大前途的。在學(xué)習(xí)爬蟲之前我們先學(xué)習(xí)下面的需要的知識(shí)線路理清楚。

第一:了解相關(guān)Http協(xié)議知識(shí)

HTTP是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫。它的發(fā)展是萬維網(wǎng)協(xié)會(huì)(World Wide Web Consortium)和Internet工作小組IETF(Internet Engineering Task Force)合作的結(jié)果,(他們)最終發(fā)布了一系列的RFC,RFC 1945定義了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定義了今天普遍使用的一個(gè)版本——HTTP 1.1。

HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。它不僅保證計(jì)算機(jī)正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內(nèi)容首先顯示(如文本先于圖形)等。

HTTP的請求響應(yīng)模型

HTTP協(xié)議永遠(yuǎn)都是客戶端發(fā)起請求,服務(wù)器回送響應(yīng)。

這樣就限制了使用HTTP協(xié)議,無法實(shí)現(xiàn)在客戶端沒有發(fā)起請求的時(shí)候,服務(wù)器將消息推送給客戶端。

HTTP協(xié)議是一個(gè)無狀態(tài)的協(xié)議,同一個(gè)客戶端的這次請求和上次請求是沒有對(duì)應(yīng)關(guān)系。

工作流程

一次HTTP操作稱為一個(gè)事務(wù),其工作過程可分為四步:

1)首先客戶機(jī)與服務(wù)器需要建立連接。只要單擊某個(gè)超級(jí)鏈接,HTTP的工作開始。

2)建立連接后,客戶機(jī)發(fā)送一個(gè)請求給服務(wù)器,請求方式的格式為:統(tǒng)一資源標(biāo)識(shí)符(URL)、協(xié)議版本號(hào),后邊是MIME信息包括請求修飾符、客戶機(jī)信息和可能的內(nèi)容。

3)服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是MIME信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容。

4)客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開連接。

如果在以上過程中的某一步出現(xiàn)錯(cuò)誤,那么產(chǎn)生錯(cuò)誤的信息將返回到客戶端,有顯示屏輸出。對(duì)于用戶來說,這些過程是由HTTP自己完成的,用戶只要用鼠標(biāo)點(diǎn)擊,等待信息顯示就可以了。

第二:了解Python中urllib庫

Python2系列使用的是urllib2,Python3后將其全部整合為urllib;我們所需學(xué)習(xí)的是幾個(gè)常用函數(shù)。細(xì)節(jié)可去官網(wǎng)查看。

第三:開發(fā)工具

Python自帶編譯器 -- IDLE,十分簡潔;PyCharm -- 交互很好的Python一款I(lǐng)DE;Fiddler -- 網(wǎng)頁請求監(jiān)控工具,我們可以使用它來了解用戶觸發(fā)網(wǎng)頁請求后發(fā)生的詳細(xì)步驟;簡單網(wǎng)頁爬蟲代碼例子:

Match對(duì)象是一次匹配的結(jié)果,包含了很多關(guān)于此次匹配的信息,可以使用Match提供的可讀屬性或方法來獲取這些信息。

屬性:

string: 匹配時(shí)使用的文本。

re: 匹配時(shí)使用的Pattern對(duì)象。

pos: 文本中正則表達(dá)式開始搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數(shù)相同。

endpos: 文本中正則表達(dá)式結(jié)束搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數(shù)相同。

lastindex: 最后一個(gè)被捕獲的分組在文本中的索引。如果沒有被捕獲的分組,將為None。

lastgroup: 最后一個(gè)被捕獲的分組的別名。如果這個(gè)分組沒有別名或者沒有被捕獲的分組,將為None。

方法:

group([group1, …]):

獲得一個(gè)或多個(gè)分組截獲的字符串;指定多個(gè)參數(shù)時(shí)將以元組形式返回。group1可以使用編號(hào)也可以使用別名;編號(hào)0代表整個(gè)匹配的子串;不填寫參數(shù)時(shí),返回group(0);沒有截獲字符串的組返回None;截獲了多次的組返回最后一次截獲的子串。

groups([default]):

以元組形式返回全部分組截獲的字符串。相當(dāng)于調(diào)用group(1,2,…last)。default表示沒有截獲字符串的組以這個(gè)值替代,默認(rèn)為None。

groupdict([default]):

返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內(nèi)。default含義同上。

start([group]):

返回指定的組截獲的子串在string中的起始索引(子串第一個(gè)字符的索引)。group默認(rèn)值為0。

end([group]):

返回指定的組截獲的子串在string中的結(jié)束索引(子串最后一個(gè)字符的索引+1)。group默認(rèn)值為0。

span([group]):

返回(start(group), end(group))。

expand(template):

將匹配到的分組代入template中然后返回。template中可以使用id或g、g引用分組,但不能使用編號(hào)0。id與g是等價(jià)的;但將被認(rèn)為是第10個(gè)分組,如果你想表達(dá)之后是字符’0’,只能使用g<1>0。

云計(jì)算、大數(shù)據(jù)分析、人工智能、物聯(lián)網(wǎng)等領(lǐng)域Python應(yīng)用無處不在。百度、阿里、騰訊、網(wǎng)易、新浪,搜狐等各公司都在大規(guī)模使用Python技術(shù)。各公司Python人才急缺,但是精通Python爬蟲技術(shù)的人才不多。好了,今天的知識(shí)點(diǎn)就分享給大家到這里,祝大家早日成為Python大牛,想要獲取更多學(xué)習(xí)資源和教程,請私聊愛編程的南風(fēng)頭條號(hào),私信關(guān)鍵詞:學(xué)習(xí)資料。同時(shí),歡迎大家留言交流如何學(xué)習(xí)Python爬蟲技術(shù)。

零基礎(chǔ)學(xué)習(xí)Python開發(fā)練習(xí)實(shí)例(4) 流量視頻課程

img

柏秋蓮

關(guān)注

31、題目:請輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)判斷第二個(gè)字母。

程序分析:用情況語句比較好,如果第一個(gè)字母一樣,則判斷用情況語句或if語句判斷第二個(gè)字母。。

程序源代碼:

實(shí)例

#!/usr/bin/python

#-*-coding:UTF-8-*-

letter=raw_input("pleaseinput:")

#whileletter!='Y':

ifletter=='S':

print('pleaseinputsecondletter:')

letter=raw_input("pleaseinput:")

ifletter=='a':

print('Saturday')

elifletter=='u':

print('Sunday')

32、題目:按相反的順序輸出列表的值。

程序分析:無。

程序源代碼:

實(shí)例

#!/usr/bin/python

#-*-coding:UTF-8-*-

a=['one','two','three']

foriina[::-1]:

printi

以上實(shí)例輸出結(jié)果為:

three

two

one

else:

print('dataerror')

elifletter=='F':

print('Friday')

elifletter=='M':

print('Monday')

elifletter=='T':

print('pleaseinputsecondletter')

letter=raw_input("pleaseinput:")

ifletter=='u':

print('Tuesday')

elifletter=='h':

print('Thursday')

else:

print('dataerror')

elifletter=='W':

print('Wednesday')

else:

print('dataerror')

以上實(shí)例輸出結(jié)果為:

pleaseinput:S

pleaseinputsecondletter:

pleaseinput:a

Saturday

33、題目:按逗號(hào)分隔列表。

程序分析:無。

實(shí)例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- L = [1,2,3,4,5] s1 = ','.join(str(n) for n in L) print s1

以上實(shí)例輸出結(jié)果為:

1,2,3,4,5

34、題目:練習(xí)函數(shù)調(diào)用。

程序分析:無。

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- def hello_world: print 'hello world' def three_hellos: for i in range(3): hello_world if __name__ == '__main__': three_hellos

以上實(shí)例輸出結(jié)果為:

hello world

hello world

hello world

35、題目:文本顏色設(shè)置。

程序分析:無。

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- class bcolors: HEADER = '[95m' OKBLUE = '[94m' OKGREEN = '[92m' WARNING = '[93m' FAIL = '[91m' ENDC = '[0m' BOLD = '[1m' UNDERLINE = '[4m' print bcolors.WARNING + "警告的顏色字體?" + bcolors.ENDC

以上實(shí)例輸出結(jié)果為:

警告的顏色字體? #淺黃色

36、題目:求100之內(nèi)的素?cái)?shù)。

程序分析:無。

程序源代碼:

實(shí)例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- #輸出指定范圍內(nèi)的素?cái)?shù) #用戶輸入數(shù)據(jù) lower = int(input("輸入?yún)^(qū)間最小值: ")) upper = int(input("輸入?yún)^(qū)間最大值: ")) for num in range(lower,upper + 1): #素?cái)?shù)大于 1 if num > 1: for i in range(2,num): if (num % i) == 0: break else: print(num)

以上實(shí)例輸出結(jié)果為:

輸入?yún)^(qū)間最小值: 1

輸入?yún)^(qū)間最大值: 100

2

3

5

7

11

13

17

19

23

29

31

37

41

43

47

53

59

61

67

71

73

79

83

89

97

37、題目:對(duì)10個(gè)數(shù)進(jìn)行排序。

程序分析:可以利用選擇法,即從后9個(gè)比較過程中,選擇一個(gè)最小的與第一個(gè)元素交換,下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。

程序源代碼:

實(shí)例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- if __name__ == "__main__": N = 10 # input data print '請輸入10個(gè)數(shù)字: ' l = for i in range(N): l.append(int(raw_input('輸入一個(gè)數(shù)字: '))) print for i in range(N): print l[i] print #排列10個(gè)數(shù)字 for i in range(N - 1): min = i for j in range(i + 1,N): if l[min] > l[j]:min = j l[i],l[min] = l[min],l[i] print '排列之后:' for i in range(N): print l[i]

以上實(shí)例輸出結(jié)果為:

請輸入10個(gè)數(shù)字:

輸入一個(gè)數(shù)字:

5

輸入一個(gè)數(shù)字:

3

輸入一個(gè)數(shù)字:

23

輸入一個(gè)數(shù)字:

67

輸入一個(gè)數(shù)字:

2

輸入一個(gè)數(shù)字:

56

輸入一個(gè)數(shù)字:

45

輸入一個(gè)數(shù)字:

98

輸入一個(gè)數(shù)字:

239

輸入一個(gè)數(shù)字:

9

5

3

23

67

2

56

45

98

239

9

排列之后:

2

3

5

9

23

45

56

67

98

239

38、題目:求一個(gè)3*3矩陣主對(duì)角線元素之和。

程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a[i][i]累加后輸出。

程序源代碼:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- if __name__ == '__main__': a = sum = 0.0 for i in range(3): a.append() for j in range(3): a[i].append(float(raw_input("input num: "))) for i in range(3): sum += a[i][i] print sum

以上實(shí)例輸出結(jié)果為:

input num:

78

input num:

34

input num:

23

input num:

34

input num:

56

input num:

33

input num:

12

input num:

21

input num:

2

136.0

39、題目:有一個(gè)已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個(gè)數(shù),要求按原來的規(guī)律將它插入數(shù)組中。

程序分析:首先判斷此數(shù)是否大于最后一個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素之后的數(shù),依次后移一個(gè)位置。

程序源代碼:

實(shí)例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- if __name__ == '__main__': #方法一 : 0作為加入數(shù)字的占位符 a = [1,4,6,9,13,16,19,28,40,100,0] print '原始列表:' for i in range(len(a)): print a[i], number = int(raw_input("插入一個(gè)數(shù)字: ")) end = a[9] if number > end: a[10] = number else: for i in range(10): if a[i] > number:temp1= a[i] a[i] = number for j in range(i + 1,11): temp2 = a[j] a[j] = temp1temp1= temp2 break print '排序后列表:' for i in range(11): print a[i],

以上實(shí)例輸出結(jié)果為:

原始列表:

1 4 6 9 13 16 19 28 40 100 0

插入一個(gè)數(shù)字:

7

排序后列表:

1 4 6 7 9 13 16 19 28 40 100

40、題目:將一個(gè)數(shù)組逆序輸出。

程序分析:用第一個(gè)與最后一個(gè)交換。

程序源代碼:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*-coding: UTF-8 -*- if __name__ == '__main__': a = [9,6,5,4,1] N = len(a) print a for i in range(len(a) / 2): a[i],a[N - i - 1] = a[N - i - 1],a[i] print a

以上實(shí)例輸出結(jié)果為:

[9, 6, 5, 4, 1]

[1, 4, 5, 6, 9]

Python練習(xí)實(shí)例一 公司視頻課程

img

老榕樹

關(guān)注

題目:有四個(gè)數(shù)字:1、2、3、4,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?各是多少?

程序分析:

可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。

程序源代碼:

以上實(shí)例輸出結(jié)果為:

使用列表形式,并計(jì)算總結(jié):

將for循環(huán)和if語句綜合成一句,直接打印出結(jié)果

參考方法(設(shè)置最大,最小值):

python3 下參考方案:

參考方法:

python自帶這個(gè)函數(shù)的

補(bǔ)充一下:

沒事找事之位運(yùn)算

考慮減少冗余判斷和循環(huán),做如下優(yōu)化;

Python3 測試實(shí)例

加入了format函數(shù)

數(shù)量統(tǒng)計(jì)用個(gè)做自加就夠了

參考:

零基礎(chǔ)學(xué)習(xí)Python開發(fā)練習(xí)實(shí)例(3) 推廣視頻課程

img

屈幼珊

關(guān)注

21、題目:猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少。

程序分析:采取逆向思維的方法,從后往前推斷。

程序源代碼:

實(shí)例(Python2.0+)

#!/usr/bin/python # -*-coding: UTF-8 -*- x2 = 1 for day in range(9,0,-1): x1 = (x2 + 1) * 2 x2 = x1 print x1

以上實(shí)例輸出結(jié)果為:

1534

22、題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊(duì)賽手的名單。

程序源代碼:

實(shí)例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(ord('x'),ord('z') + 1): for j in range(ord('x'),ord('z') + 1): if i != j: for k in range(ord('x'),ord('z') + 1): if (i != k) and (j != k): if (i != ord('x')) and (k != ord('x')) and (k != ord('z')): print 'order is a -- %s b -- %s c--%s' % (chr(i),chr(j),chr(k))

以上實(shí)例輸出結(jié)果為:

order is a -- z b -- x c--y

23、題目:打印出如下圖案(菱形):

*

***

*****

*******

*****

***

*

程序分析:先把圖形分成兩部分來看待,前四行一個(gè)規(guī)律,后三行一個(gè)規(guī)律,利用雙重for循環(huán),第一層控制行,第二層控制列。

程序源代碼:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- from sys import stdout for i in range(4): for j in range(2 - i + 1): stdout.write(' ') for k in range(2 * i + 1): stdout.write('*') print for i in range(3): for j in range(i + 1): stdout.write(' ') for k in range(4 - 2 * i + 1): stdout.write('*') print

以上實(shí)例輸出結(jié)果為:

*

***

*****

*******

*****

***

*

24、題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個(gè)數(shù)列的前20項(xiàng)之和。

程序分析:請抓住分子與分母的變化規(guī)律。

程序源代碼:

方法一:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 2.0 b = 1.0 s = 0 for n in range(1,21): s += a / b t = a a = a + b b = t print s

方法二:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 2.0 b = 1.0 s = 0.0 for n in range(1,21): s += a / b b,a = a , a + b print s s = 0.0 for n in range(1,21): s += a / b b,a = a , a + b print s

方法三:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- a = 2.0 b = 1.0 l = l.append(a / b) for n in range(1,20): b,a = a,a + b l.append(a / b) print reduce(lambda x,y: x + y,l)

以上實(shí)例輸出結(jié)果為:

32.6602607986

25、題目:求1+2!+3!+...+20!的和。

程序分析:此程序只是把累加變成了累乘。

方法一

#!/usr/bin/python # -*- coding: UTF-8 -*- n = 0 s = 0 t = 1 for n in range(1,21): t *= n s += t print '1! + 2! + 3! + ... + 20! = %d' % s方法二

#!/usr/bin/python # -*- coding: UTF-8 -*- s = 0 l = range(1,21) def op(x): r = 1 for i in range(1,x + 1): r *= i return r s = sum(map(op,l)) print '1! + 2! + 3! + ... + 20! = %d' % s

以上實(shí)例輸出結(jié)果為:

1! + 2! + 3! + ... + 20! = 2561327494111820313

26、題目:利用遞歸方法求5!。

程序分析:遞歸公式:fn=fn_1*4!

程序源代碼:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- def fact(j): sum = 0 if j == 0: sum = 1 else: sum = j * fact(j - 1) return sum print fact(5)

以上實(shí)例輸出結(jié)果為:

120

27、題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個(gè)字符,以相反順序打印出來。

程序分析:無。

程序源代碼:

實(shí)例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- def output(s,l): if l==0: return print (s[l-1]) output(s,l-1) s = raw_input('Input a string:') l = len(s) output(s,l)

以上實(shí)例輸出結(jié)果為:

Input a string:abcde

e

d

c

b

a

28、題目:有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比第3個(gè)人大2歲。問第三個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最后問第一個(gè)人,他說是10歲。請問第五個(gè)人多大?

程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。

程序源代碼:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- def age(n): if n == 1: c = 10 else: c = age(n - 1) + 2 return c print age(5)

以上實(shí)例輸出結(jié)果為:

18

29、題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。

程序分析:學(xué)會(huì)分解出每一位數(shù)。

程序源代碼:

實(shí)例

#!/usr/bin/python # -*- coding: UTF-8 -*- x = int(raw_input("請輸入一個(gè)數(shù): ")) a = x / 10000 b = x % 10000 / 1000 c = x % 1000 / 100 d = x % 100 / 10 e = x % 10 if a != 0: print "5位數(shù):",e,d,c,b,a elif b != 0: print "4位數(shù):",e,d,c,b, elif c != 0: print "3位數(shù):",e,d,c elif d != 0: print "2位數(shù):",e,d else: print "1位數(shù):",e

以上實(shí)例輸出結(jié)果為:

請輸入一個(gè)數(shù):

23459

5位數(shù): 9 5 4 3 2

請輸入一個(gè)數(shù):

3472

4位數(shù): 2 7 4 3

30、題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬位相同,十位與千位相同。

程序分析:無。

程序源代碼:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*-coding: UTF-8 -*- a = int(raw_input("請輸入一個(gè)數(shù)字: ")) x = str(a) flag = True for i in range(len(x)/2): if x[i] != x[-i - 1]: flag = False break if flag: print "%d是一個(gè)回文數(shù)!" % a else: print "%d不是一個(gè)回文數(shù)!" % a

以上實(shí)例輸出結(jié)果為:

請輸入一個(gè)數(shù)字:

12321

12321是一個(gè)回文數(shù)!

Python練習(xí)實(shí)例一 企業(yè)視頻課程

img

廖苡

關(guān)注

題目:有四個(gè)數(shù)字:1、2、3、4,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?各是多少?

程序分析:

可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。

程序源代碼:

以上實(shí)例輸出結(jié)果為:

使用列表形式,并計(jì)算總結(jié):

將for循環(huán)和if語句綜合成一句,直接打印出結(jié)果

參考方法(設(shè)置最大,最小值):

python3 下參考方案:

參考方法:

python自帶這個(gè)函數(shù)的

補(bǔ)充一下:

沒事找事之位運(yùn)算

考慮減少冗余判斷和循環(huán),做如下優(yōu)化;

Python3 測試實(shí)例

加入了format函數(shù)

數(shù)量統(tǒng)計(jì)用個(gè)做自加就夠了

參考:

img

在線咨詢

建站在線咨詢

img

微信咨詢

掃一掃添加
動(dòng)力姐姐微信

img
img

TOP