<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          100道Python練習題,看看你能會幾題???

          共 2184字,需瀏覽 5分鐘

           ·

          2022-01-02 01:48

          大家好,今天給大家?guī)?00道Python練習題,附上參考答案!希望能夠幫到大家!

          本文較長,如果你不是一個能夠耐住性子,一下子就看完的性格,強烈建議收藏一波喲~??
          如果文章對你有幫助,記得點贊和在看喲~

          實例001:數(shù)字組合

          實例002:“個稅計算”

          實例003:完全平方數(shù)

          實例004:這天第幾天

          實例005:三數(shù)排序

          實例006:斐波那契數(shù)列

          實例007:copy

          實例008:九九乘法表

          實例009:暫停一秒輸出?

          實例010:給人看的時間

          實例011:養(yǎng)兔子

          實例012:100到200的素數(shù)

          實例013:所有水仙花數(shù)

          實例014:分解質(zhì)因數(shù)

          實例015:分數(shù)歸檔

          實例016:輸出日期

          實例017:字符串構(gòu)成

          實例018:復(fù)讀機相加

          實例019:完數(shù)

          實例020:高空拋物

          實例021:猴子偷桃

          實例022:比賽對手

          實例023:畫菱形

          實例024:斐波那契數(shù)列II

          實例025:階乘求和

          實例026:遞歸求階乘

          實例027:遞歸輸出

          實例028:遞歸求等差數(shù)列

          實例029:反向輸出

          實例030:回文數(shù)

          實例031:字母識詞

          實例032:反向輸出II

          實例033:列表轉(zhuǎn)字符串

          實例034:調(diào)用函數(shù)

          實例035:設(shè)置輸出顏色

          實例036:算素數(shù)

          實例037:排序

          實例038:矩陣對角線之和

          實例039:有序列表插入元素

          實例040:逆序列表

          實例041:類的方法與變量

          實例042:變量作用域

          實例043:作用域、類的方法與變量

          實例044:矩陣相加

          實例045:求和

          實例046:打破循環(huán)

          實例047:函數(shù)交換變量

          實例048:數(shù)字比大小

          實例049:lambda

          實例050:隨機數(shù)

          實例051:按位與

          實例052:按位或

          實例053:按位異或?

          實例054:位取反、位移動

          實例055:按位取反

          實例056:畫圈

          實例057:畫線

          實例058:畫矩形

          實例059:畫圖

          實例060:字符串長度

          實例061:楊輝三角

          實例062:查找字符串

          實例063:畫橢圓

          實例064:畫橢圓、矩形

          實例065:畫組合圖形

          實例066:三數(shù)排序

          實例067:交換位置

          實例068:旋轉(zhuǎn)數(shù)列

          實例069:報數(shù)

          實例070:字符串長度II

          實例071:輸入和輸出

          實例072:創(chuàng)建鏈表

          實例073:反向輸出鏈表

          實例074:列表排序、連接

          實例075:不知所云

          實例076:做函數(shù)

          實例077:遍歷列表

          實例078:字典

          實例079:字符串排序

          實例080:猴子分桃

          實例081:求未知數(shù)

          實例082:八進制轉(zhuǎn)十進制

          實例083:制作奇數(shù)

          實例084:連接字符串

          實例085:整除

          實例086:連接字符串II

          實例087:訪問類成員

          實例088:打印星號

          實例089:解碼

          實例090:列表詳解

          實例091:time模塊

          實例092:time模塊II

          實例093:time模塊III

          實例094:time模塊IV

          實例095:轉(zhuǎn)換時間格式

          實例096:計算復(fù)讀次數(shù)

          實例097:磁盤寫入

          實例098:磁盤寫入II

          實例099:磁盤讀寫

          實例100:列表轉(zhuǎn)字典

          實例001:數(shù)字組合

          題目:?有四個數(shù)字:1、2、3、4,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?各是多少?
          程序分析:?遍歷全部可能,把有重復(fù)的剃掉。

          total=0
          for?i?in?range(1,5):
          ??for?j?in?range(1,5):
          ????for?k?in?range(1,5):
          ??????if?((i!=j)and(j!=k)and(k!=i)):
          ????????print(i,j,k)
          ????????total+=1print(total)

          簡便方法?用itertools中的permutations即可。

          import?itertools
          sum2=0a=[1,2,3,4]
          for?i?in?itertools.permutations(a,3):
          ??print(i)
          ??sum2+=1
          ??print(sum2)

          實例002:“個稅計算”

          題目:?企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應(yīng)發(fā)放獎金總數(shù)?
          程序分析:?分區(qū)間計算即可。

          profit=int(input('Show?me?the?money:?'))
          bonus=0
          thresholds=[100000,100000,200000,200000,400000]
          rates=[0.1,0.075,0.05,0.03,0.015,0.01]
          for?i?in?range(len(thresholds)):????
          ??if?profit<=thresholds[i]:????????
          ????bonus+=profit*rates[i]????????
          ????profit=0????????
          ????break????
          ??else:????????
          ????bonus+=thresholds[i]*rates[i]????????
          ????profit-=thresholds[i]
          ????bonus+=profit*rates[-1]
          ????print(bonus)

          實例003:完全平方數(shù)

          題目:?一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?
          程序分析:?因為168對于指數(shù)爆炸來說實在太小了,所以可以直接省略數(shù)學分析,用最樸素的方法來獲取上限:

          n=0
          while?(n+1)**2-n*n<=168:????
          ??n+=1
          print(n+1)

          思路是:?最壞的結(jié)果是n的平方與(n+1)的平方剛好差168,由于是平方的關(guān)系,不可能存在比這更大的間隙。

          至于判斷是否是完全平方數(shù),最簡單的方法是:平方根的值小數(shù)為0即可。

          結(jié)合起來:

          n=0
          while?(n+1)**2-n*n<=168:????
          ??n+=1
          for?i?in?range((n+1)**2):
          ???if?i**0.5==int(i**0.5)?and?(i+168)**0.5==int((i+168)**0.5):
          ??????print(i-100)

          實例004:這天第幾天

          題目:?輸入某年某月某日,判斷這一天是這一年的第幾天?
          程序分析:?特殊情況,閏年時需考慮二月多加一天:

          def?isLeapYear(y):
          ??return?(y%400==0?or?(y%4==0?and?y%100!=0))
          DofM?=?[0,31,28,31,30,31,30,31,31,30,31,30]
          res=0
          year=int(input('Year:'))
          month=int(input('Month:'))
          day=int(input('day:'))
          if?isLeapYear(year):????
          ??DofM[2]+=1
          for?i?in?range(month):????
          ??res+=DofM[i]
          print(res+day)

          實例005:三數(shù)排序

          題目:?輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。
          程序分析:?練練手就隨便找個排序算法實現(xiàn)一下,偷懶就直接調(diào)函數(shù)。

          raw=[]
          for?i?in?range(3):????
          ??x=int(input('int%d:?'%(i)))????
          ??raw.append(x)
          for?i?in?range(len(raw)):????
          ??for?j?in?range(i,len(raw)):????????
          ????if?raw[i]>raw[j]:
          ??????raw[i],raw[j]=raw[j],raw[i]
          print(raw)

          raw2=[]
          for?i?in?range(3):????
          ??x=int(input('int%d:?'%(i)))????
          ??raw2.append(x)
          print(sorted(raw2))

          實例006:斐波那契數(shù)列

          題目:?斐波那契數(shù)列。
          程序分析:?斐波那契數(shù)列(Fibonacci sequence),從1,1開始,后面每一項等于前面兩項之和。圖方便就遞歸實現(xiàn),圖性能就用循環(huán)。

          遞歸實現(xiàn)

          def?Fib(n):
          ??return?1?if?n<=2?else?Fib(n-1)+Fib(n-2)
          print(Fib(int(input())))

          樸素實現(xiàn)

          target=int(input())
          res=0
          a,b=1,1
          for?i?in?range(target-1):????
          ??a,b=b,a+b
          print(a)

          實例007:copy

          題目:?將一個列表的數(shù)據(jù)復(fù)制到另一個列表中。
          程序分析:?使用列表[:],拿不準可以調(diào)用copy模塊。

          import?copy
          a?=?[1,2,3,4,['a','b']]

          b?=?a??????????#?賦值
          c?=?a[:]????????#?淺拷貝
          d?=?copy.copy(a)????#?淺拷貝
          e?=?copy.deepcopy(a)??#?深拷貝

          a.append(5)
          a[4].append('c')

          print('a=',a)
          print('b=',b)
          print('c=',c)
          print('d=',d)
          print('e=',e)
          a=?[1,?2,?3,?4,?['a',?'b',?'c'],?5]
          b=?[1,?2,?3,?4,?['a',?'b',?'c'],?5]
          c=?[1,?2,?3,?4,?['a',?'b',?'c']]
          d=?[1,?2,?3,?4,?['a',?'b',?'c']]
          e=?[1,?2,?3,?4,?['a',?'b']]

          實例008:九九乘法表

          題目:?輸出 9*9 乘法口訣表。
          程序分析:?分行與列考慮,共9行9列,i控制行,j控制列。

          for?i?in?range(1,10):
          ????for?j?in?range(1,i+1):
          ????????print('%d*%d=%2ld?'%(i,j,i*j),end='')
          ????print()

          實例009:暫停一秒輸出

          題目:?暫停一秒輸出。
          程序分析:?使用 time 模塊的 sleep() 函數(shù)。

          import?time
          for?i?in?range(4):
          print(str(int(time.time()))[-2:])
          ????time.sleep(1)

          實例010:給人看的時間

          題目:?暫停一秒輸出,并格式化當前時間。
          程序分析:?使用 time 模塊的 sleep() 函數(shù)。

          import?time
          for?i?in?range(4):????
          ??print(time.strftime('%Y-%m-%d?%H:%M:%S',time.localtime(time.time())))
          ??time.sleep(1)

          實例011:養(yǎng)兔子

          題目:?有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?

          程序分析:?我認為原文的解法有點扯,沒有考慮3個月成熟的問題,人家還是嬰兒怎么生孩子?考慮到三個月成熟,可以構(gòu)建四個數(shù)據(jù),其中:一月兔每個月長大成為二月兔,二月兔變?nèi)峦茫峦米兂赡晖?,成年兔(包括新成熟的三月兔)生等量的一月兔?/p>

          month=int(input('繁殖幾個月?:'))
          month_1=1
          month_2=0
          month_3=0
          month_elder=0
          for?i?in?range(month):
          ????month_1,month_2,month_3,month_elder=month_elder+month_3,month_1,month_2,month_elder+month_3
          ????print('第%d個月共'%(i+1),month_1+month_2+month_3+month_elder,'對兔子')
          ????print('其中1月兔:',month_1)
          ????print('其中2月兔:',month_2)
          ????print('其中3月兔:',month_3)
          ????print('其中成年兔:',month_elder)

          實例012:100到200的素數(shù)

          題目:?判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。
          程序分析:?判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不是素數(shù),反之是素數(shù)。用else可以進一步簡化代碼.

          import?math
          for?i?in?range(100,200):
          ????flag=0
          ????for?j?in?range(2,round(math.sqrt(i))+1):
          ????????if?i%j==0:
          ????????????flag=1
          ????????????break
          ????if?flag:
          ????????continue
          ????print(i)

          print('\nSimplify?the?code?with?"else"\n')

          for?i?in?range(100,200):
          ????for?j?in?range(2,round(math.sqrt(i))+1):
          ????????if?i%j==0:
          ????????????break
          ????else:
          ????????print(i)

          實例013:所有水仙花數(shù)

          題目:?打印出所有的"水仙花數(shù)",所謂"水仙花數(shù)"是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個"水仙花數(shù)",因為153=1的三次方+5的三次方+3的三次方。

          程序分析:?利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。

          for?i?in?range(100,1000):
          ????s=str(i)
          ????one=int(s[-1])
          ????ten=int(s[-2])
          ????hun=int(s[-3])
          ????if?i?==?one**3+ten**3+hun**3:
          ????????print(i)

          實例014:分解質(zhì)因數(shù)

          題目:?將一個整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=233*5。
          程序分析:?根本不需要判斷是否是質(zhì)數(shù),從2開始向數(shù)本身遍歷,能整除的肯定是最小的質(zhì)數(shù)。

          target=int(input('輸入一個整數(shù):'))
          print(target,'=?',end='')

          if?target<0:
          ????target=abs(target)
          print('-1*',end='')

          flag=0
          if?target<=1:
          print(target)
          ????flag=1

          while?True:
          if?flag:
          break
          for?i?in?range(2,int(target+1)):
          if?target%i==0:
          print("%d"%i,end='')
          if?target==i:
          ????????????????flag=1
          break
          print('*',end='')
          ????????????target/=i
          break

          實例015:分數(shù)歸檔

          題目:?利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
          程序分析:?用條件判斷即可。

          points=int(input('輸入分數(shù):'))
          if?points>=90:
          ????grade='A'
          elif?points<60:
          ????grade='C'
          else:
          ???grade='B
          print(grade)

          實例016:輸出日期

          題目:?輸出指定格式的日期。
          程序分析:?使用 datetime 模塊。

          import?datetime
          print(datetime.date.today())
          print(datetime.date(2333,2,3))
          print(datetime.date.today().strftime('%d/%m/%Y'))
          day=datetime.date(1111,2,3)
          day=day.replace(year=day.year+22)
          print(day)

          實例017:字符串構(gòu)成

          題目:?輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。
          程序分析:?利用 while 或 for 語句,條件為輸入的字符不為 ‘\n’。

          string=input("輸入字符串:")
          alp=0
          num=0
          spa=0
          oth=0
          for?i?in?range(len(string)):
          if?string[i].isspace():
          ????????spa+=1
          ????elif?string[i].isdigit():
          ????????num+=1
          ????elif?string[i].isalpha():
          ????????alp+=1
          else:
          ????????oth+=1
          print('space:?',spa)
          print('digit:?',num)
          print('alpha:?',alp)
          print('other:?',oth)

          實例018:復(fù)讀機相加

          題目:?求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加由鍵盤控制。
          程序分析:?用字符串解決。

          a=input('被加數(shù)字:')
          n=int(input('加幾次?:'))
          res=0
          for?i?in?range(n):
          ????res+=int(a)
          ????a+=a[0]
          print('結(jié)果是:',res)

          實例019:完數(shù)

          題目:?一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為"完數(shù)"。例如6=1+2+3.編程找出1000以內(nèi)的所有完數(shù)。
          程序分析:?將每一對因子加進集合,在這個過程中已經(jīng)自動去重。最后的結(jié)果要求不計算其本身。

          def?factor(num):
          ????target=int(num)
          ????res=set()
          for?i?in?range(1,num):
          if?num%i==0:
          ????????????res.add(i)
          ????????????res.add(num/i)
          return?res

          for?i?in?range(2,1001):
          if?i==sum(factor(i))-i:
          ????????print(i)

          實例020:高空拋物

          題目:?一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經(jīng)過多少米?第10次反彈多高?

          high=200.
          total=100
          for?i?in?range(10):
          ????high/=2
          ????total+=high
          ????print(high/2)
          print('總長:',total)

          實例021:猴子偷桃

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

          程序分析:?按規(guī)則反向推斷:猴子有一個桃子,他偷來一個桃子,覺得不夠又偷來了與手上等量的桃子,一共偷了9天。

          peach=1
          for?i?in?range(9):
          ????peach=(peach+1)*2
          print(peach)

          實例022:比賽對手

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

          程序分析:?找到條件下不重復(fù)的三個對手即可。

          a=set(['x','y','z'])
          b=set(['x','y','z'])
          c=set(['x','y','z'])
          c-=set(('x','y'))
          a-=set('x')
          for?i?in?a:
          ????for?j?in?b:
          ????????for?k?in?c:
          ????????????if?len(set((i,j,k)))==3:
          ????????????????print('a:%s,b:%s,c:%s'%(i,j,k))

          實例023:畫菱形

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

              *
          ***
          *****
          *******
          *****
          ***
          *

          程序分析:?遞歸調(diào)用即可。

          def?draw(num):
          ????a="*"*(2*(4-num)+1)
          ????print(a.center(9,'?'))
          if?num!=1:
          ????????draw(num-1)
          ????????print(a.center(9,'?'))
          draw(4)

          實例024:斐波那契數(shù)列II

          題目:?有一分數(shù)序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個數(shù)列的前20項之和。
          程序分析:?就是斐波那契數(shù)列的后一項除以前一項。

          a?=?2.0
          b?=?1.0
          s?=?0
          for?n?in?range(1,21):
          ????s?+=?a?/?b
          ????a,b?=?a?+?b,a
          print?(s)

          實例025:階乘求和

          題目:?求1+2!+3!+…+20!的和。
          程序分析:?1+2!+3!+…+20!=1+2(1+3(1+4(…20(1))))

          res=1
          for?i?in?range(20,1,-1):
          ????res=i*res+1
          print(res)

          實例026:遞歸求階乘

          題目:?利用遞歸方法求5!。
          程序分析:?遞歸調(diào)用即可。

          def?factorial(n):
          ????return?n*factorial(n-1)?if?n>1?else?1
          print(factorial(5))

          實例027:遞歸輸出

          題目:?利用遞歸函數(shù)調(diào)用方式,將所輸入的5個字符,以相反順序打印出來。
          程序分析:?遞歸真是蠢方法。

          def?rec(string):
          if?len(string)!=1:
          ????rec(string[1:])
          print(string[0],end='')
          rec(input('string?here:'))

          實例028:遞歸求等差數(shù)列

          題目:?有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?
          程序分析:?就一等差數(shù)列。

          def?age(n):
          ???if?n==1:
          ???return?10
          ??return?2+age(n-1)
          print(age(5))

          實例029:反向輸出

          題目:?給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。
          程序分析:?學會分解出每一位數(shù),用字符串的方法總是比較省事。

          n=int(input('輸入一個正整數(shù):'))
          n=str(n)
          print('%d位數(shù)'%len(n))
          print(n[::-1])

          實例030:回文數(shù)

          題目:?一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同。
          程序分析:?用字符串比較方便,就算輸入的不是數(shù)字都ok。

          n=input("隨便你輸入啥啦:")
          a=0
          b=len(n)-1
          flag=True
          while?aif?n[a]!=n[b]:
          print('不是回文串')
          ????????flag=False
          break
          ????a,b=a+1,b-1
          if?flag:
          print('是回文串')

          實例031:字母識詞

          題目:?請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續(xù)判斷第二個字母。
          程序分析:?這里用字典的形式直接將對照關(guān)系存好。

          weekT={'h':'thursday','u':'tuesday'}
          weekS={'a':'saturday','u':'sunday'}
          week={'t':weekT,
          ???'s':weekS,
          ???'m':'monday',
          ???'w':'wensday',
          ???'f':'friday'}
          a=week[str(input('請輸入第一位字母:')).lower()]
          if?a==weekT?or?a==weekS:
          ??print(a[str(input('請輸入第二位字母:')).lower()])
          else:
          ????print(a)

          實例032:反向輸出II

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

          a?=?['one',?'two',?'three']
          print(a[::-1])

          實例033:列表轉(zhuǎn)字符串

          題目:?按逗號分隔列表。

          L?=?[1,2,3,4,5]
          print(','.join(str(n)?for?n?in?L))

          實例034:調(diào)用函數(shù)

          題目:?練習函數(shù)調(diào)用。

          def?hello():
          ????print('Hello?World!')
          def?helloAgain():
          for?i?in?range(2):
          ????????hello()
          if?__name__=='__main__':
          ????helloAgain()

          實例035:設(shè)置輸出顏色

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

          class?bcolors:
          ????HEADER?=?'\033[95m'
          ????OKBLUE?=?'\033[94m'
          ????OKGREEN?=?'\033[92m'
          ????WARNING?=?'\033[93m'
          ????FAIL?=?'\033[91m'
          ????ENDC?=?'\033[0m'
          ????BOLD?=?'\033[1m'
          ????UNDERLINE?=?'\033[4m'
          print(bcolors.WARNING?+?"警告的顏色字體?"?+?bcolors.ENDC)

          實例036:算素數(shù)

          題目:?求100之內(nèi)的素數(shù)。
          程序分析:?用else執(zhí)行for循環(huán)的獎勵代碼(如果for是正常完結(jié),非break)。

          lo=int(input('下限:'))
          hi=int(input('上限:'))
          for?i?in?range(lo,hi+1):
          ????if?i?>?1:
          ????????for?j?in?range(2,i):
          ????????????if?(i?%?j)?==?0:
          ????????????????break
          ????????else:
          ????????????print(i)

          實例037:排序

          題目:?對10個數(shù)進行排序。
          程序分析:?同實例005。

          raw=[]
          for?i?in?range(10):
          ????x=int(input('int%d:?'%(i)))
          ????raw.append(x)

          for?i?in?range(len(raw)):
          for?j?in?range(i,len(raw)):
          if?raw[i]>raw[j]:
          ????????????raw[i],raw[j]=raw[j],raw[i]
          print(raw)

          實例038:矩陣對角線之和

          題目:?求一個3*3矩陣主對角線元素之和。

          mat=[[1,2,3],
          ?????[3,4,5],
          ?????[4,5,6]
          ????]
          res=0
          for?i?in?range(len(mat)):
          ????res+=mat[i][i]
          print(res)

          實例039:有序列表插入元素

          題目:?有一個已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。
          程序分析:?首先判斷此數(shù)是否大于最后一個數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素之后的數(shù),依次后移一個位置。

          lis=[1,10,100,1000,10000,100000]
          n=int(input('insert?a?number:?'))
          lis.append(n)
          for?i?in?range(len(lis)-1):
          ????if?lis[i]>=n:
          ????????for?j?in?range(i,len(lis)):
          ????????????lis[j],lis[-1]=lis[-1],lis[j]
          ????????break
          print(lis)

          實例040:逆序列表

          題目:?將一個數(shù)組逆序輸出。
          程序分析:?依次交換位置,或者直接調(diào)用reverse方法。

          lis=[1,10,100,1000,10000,100000]
          for?i?in?range(int(len(lis)/2)):
          ????lis[i],lis[len(lis)-1-i]=lis[len(lis)-1-i],lis[i]
          print('第一種實現(xiàn):')
          print(lis)

          lis=[1,10,100,1000,10000,100000]
          print('第二種實現(xiàn):')
          lis.reverse()
          print(lis)

          實例041:類的方法與變量

          題目:?模仿靜態(tài)變量的用法。
          程序分析:?構(gòu)造類,了解類的方法與變量。

          def?dummy():
          ????i=0
          ????print(i)
          ????i+=1

          class?cls:
          ????i=0
          ????def?dummy(self):
          ????????print(self.i)
          ????????self.i+=1

          a=cls()
          for?i?in?range(50):
          ????dummy()
          ????a.dummy()

          實例042:變量作用域

          題目:?學習使用auto定義變量的用法。
          程序分析:?python中的變量作用域。

          i=0
          n=0
          def?dummy():
          ????i=0
          ????print(i)
          ????i+=1
          def?dummy2():
          global?n
          ????print(n)
          ????n+=1
          print('函數(shù)內(nèi)部的同名變量')
          for?j?in?range(20):
          ????print(i)
          ????dummy()
          ????i+=1
          print('global聲明同名變量')
          for?k?in?range(20):
          ????print(n)
          ????dummy2()
          ????n+=10

          實例043:作用域、類的方法與變量

          題目:?模仿靜態(tài)變量(static)另一案例。
          程序分析:?綜合實例041和實例042。

          class?dummy:
          ????num=1
          ????def?Num(self):
          ????????print('class?dummy?num:',self.num)
          ????????print('global?num:?',num)
          ????????self.num+=1

          n=dummy()
          num=1
          for?i?in?range(5):
          ????num*=10
          ????n.Num()

          實例044:矩陣相加

          題目:?計算兩個矩陣相加。
          程序分析:?創(chuàng)建一個新的矩陣,使用 for 迭代并取出 X 和 Y 矩陣中對應(yīng)位置的值,相加后放到新矩陣的對應(yīng)位置中。

          X?=?[[12,7,3],
          ????[4?,5,6],
          ????[7?,8,9]]

          Y?=?[[5,8,1],
          ????[6,7,3],
          ????[4,5,9]]

          res=[[0,0,0],
          ????[0,0,0],
          ????[0,0,0]]
          for?i?in?range(len(res)):
          ????for?j?in?range(len(res[0])):
          ????????res[i][j]=X[i][j]+Y[i][j]
          print(res)

          實例045:求和

          題目:?統(tǒng)計 1 到 100 之和。

          res=0
          for?i?in?range(1,101):
          ????res+=i
          print(res)

          實例046:打破循環(huán)

          題目:?求輸入數(shù)字的平方,如果平方運算后小于 50 則退出。

          while?True:
          ????try:
          ????????n=float(input('輸入一個數(shù)字:'))
          ????except:
          ????????print('輸入錯誤')
          ????????continue
          ????dn=n**2
          ????print('其平方為:',dn)
          ????if?dn<50:
          ????????print('平方小于50,退出')
          ????????break

          實例047:函數(shù)交換變量

          題目:?兩個變量值用函數(shù)互換。

          def?exc(a,b):
          ????return?(b,a)
          a=0
          b=10
          a,b=exc(a,b)
          print(a,b)

          實例048:數(shù)字比大小

          題目:?數(shù)字比較。

          a=int(input('a='))
          b=int(input('b='))
          if?a????print('a)
          elif?a>b:
          ????print('a>b')
          else:
          ????print('a=b')

          實例049:lambda

          題目:?使用lambda來創(chuàng)建匿名函數(shù)。

          Max=lambda?x,y:x*(x>=y)+y*(y>x)
          Min=lambda?x,y:x*(x<=y)+y*(y
          a=int(input('1:'))
          b=int(input('2:'))

          print(Max(a,b))
          print(Min(a,b))

          實例050:隨機數(shù)

          題目:?輸出一個隨機數(shù)。
          程序分析:?使用 random 模塊。

          import?random
          print(random.uniform(10,20))

          實例051:按位與

          題目:?學習使用按位與 & 。
          程序分析:?0&0=0; 0&1=0; 1&0=0; 1&1=1。

          a=0o77
          print(a)
          b=a&3
          print(b)
          b=b&7
          print(b)

          實例052:按位或

          題目:?學習使用按位或 | 。
          程序分析:?0|0=0; 0|1=1; 1|0=1; 1|1=1

          a=0o77
          print(a|3)
          print(a|3|7)

          實例053:按位異或

          題目:?學習使用按位異或 ^ 。
          程序分析:?0^0=0; 0^1=1; 1^0=1; 1^1=0

          a=0o77
          print(a^3)
          print(a^3^7)

          實例054:位取反、位移動

          題目:?取一個整數(shù)a從右端開始的4~7位。
          程序分析:?可以這樣考慮:

          1. 先使a右移4位。
          2. 設(shè)置一個低4位全為1,其余全為0的數(shù)??捎?0<<4)
          3. 將上面二者進行&運算。
          a=int(input('輸入一個數(shù)字:?'))
          b=0?????????????????#?????0
          b=~b????????????????#?????1
          b=b<<4??????????????#?10000
          b=~b????????????????#??1111
          c=a>>4
          d=c&b
          print('a:',bin(a))
          print('b:',bin(b))
          print('c:',bin(c))
          print('d:',bin(d))

          實例055:按位取反

          題目:?學習使用按位取反~。
          程序分析:?~0=1; ~1=0;

          print(~234)
          print(~~234)

          實例056:畫圈

          題目:?畫圖,學用circle畫圓形。

          from?tkinter?import?*
          canvas=Canvas(width=800,height=600,bg='yellow')
          canvas.pack(expand=YES,fill=BOTH)
          k=1
          j=1
          for?i?in?range(26):
          ????canvas.create_oval(310-k,250-k,310+k,250+k,width=1)
          ????k+=j
          ????j+=0.3
          mainloop()

          實例057:畫線

          題目:?畫圖,學用line畫直線。

          from?tkinter?import?*

          canvas?=?Canvas(width=300,?height=300,?bg='green')???
          canvas.pack(expand=YES,?fill=BOTH)??????????????????
          x0?=?263
          y0?=?263
          y1?=?275
          x1?=?275
          for?i?in?range(19):
          ????canvas.create_line(x0,y0,x0,y1,?width=1,?fill='red')
          ????x0?=?x0?-?5
          ????y0?=?y0?-?5
          ????x1?=?x1?+?5
          ????y1?=?y1?+?5

          x0?=?263
          y1?=?275
          y0?=?263
          for?i?in?range(21):
          ????canvas.create_line(x0,y0,x0,y1,fill?=?'red')
          ????x0?+=?5
          ????y0?+=?5
          ????y1?+=?5

          實例058:畫矩形

          題目:?畫圖,學用rectangle畫方形。

          from?tkinter?import?*
          root?=?Tk()
          root.title('Canvas')
          canvas?=?Canvas(root,width?=?400,height?=?400,bg?=?'yellow')
          x0?=?263
          y0?=?263
          y1?=?275
          x1?=?275
          for?i?in?range(19):
          ????canvas.create_rectangle(x0,y0,x1,y1)
          ????x0?-=?5
          ????y0?-=?5
          ????x1?+=?5
          ????y1?+=?5
          canvas.pack()
          root.mainloop()

          實例059:畫圖

          題目:?畫圖,綜合例子。

          from?tkinter?import?*
          canvas?=?Canvas(width?=?300,height?=?300,bg?=?'green')
          canvas.pack(expand?=?YES,fill?=?BOTH)
          x0?=?150
          y0?=?100
          canvas.create_oval(x0?-?10,y0?-?10,x0?+?10,y0?+?10)
          canvas.create_oval(x0?-?20,y0?-?20,x0?+?20,y0?+?20)
          canvas.create_oval(x0?-?50,y0?-?50,x0?+?50,y0?+?50)
          import?math
          B?=?0.809
          for?i?in?range(16):
          ????a?=?2?*?math.pi?/?16?*?i
          ????x?=?math.ceil(x0?+?48?*?math.cos(a))
          ????y?=?math.ceil(y0?+?48?*?math.sin(a)?*?B)
          ????canvas.create_line(x0,y0,x,y,fill?=?'red')
          canvas.create_oval(x0?-?60,y0?-?60,x0?+?60,y0?+?60)

          for?k?in?range(501):
          ????for?i?in?range(17):
          ????????a?=?(2?*?math.pi?/?16)?*?i?+?(2?*?math.pi?/?180)?*?k
          ????????x?=?math.ceil(x0?+?48?*?math.cos(a))
          ????????y?=?math.ceil(y0?+?48?+?math.sin(a)?*?B)
          ????????canvas.create_line(x0,y0,x,y,fill?=?'red')
          ????for?j?in?range(51):
          ????????a?=?(2?*?math.pi?/?16)?*?i?+?(2*?math.pi?/?180)?*?k?-?1
          ????????x?=?math.ceil(x0?+?48?*?math.cos(a))
          ????????y?=?math.ceil(y0?+?48?*?math.sin(a)?*?B)
          ????????canvas.create_line(x0,y0,x,y,fill?=?'red')
          mainloop()

          實例060:字符串長度

          題目:?計算字符串長度。

          s='zhangguang101'
          print(len(s))

          實例061:楊輝三角

          題目:?打印出楊輝三角形前十行。

          def?generate(numRows):
          ????r?=?[[1]]
          ????for?i?in?range(1,numRows):
          ????????r.append(list(map(lambda?x,y:x+y,?[0]+r[-1],r[-1]+[0])))
          ????return?r[:numRows]
          a=generate(10)
          for?i?in?a:
          ????print(i)

          實例062:查找字符串

          題目:?查找字符串。

          s1='aabbxuebixuebi'
          s2='ab'
          s3='xue'
          print(s1.find(s2))
          print(s1.find(s3))

          實例063:畫橢圓

          題目:?畫橢圓。
          程序分析:?使用 tkinter。

          from?tkinter?import?*
          x?=?360
          y?=?160
          top?=?y?-?30
          bottom?=?y?-?30

          canvas?=?Canvas(width?=?400,height?=?600,bg?=?'white')
          for?i?in?range(20):
          ????canvas.create_oval(250?-?top,250?-?bottom,250?+?top,250?+?bottom)
          ????top?-=?5
          ????bottom?+=?5
          canvas.pack()
          mainloop()

          實例064:畫橢圓、矩形

          題目:?利用ellipse 和 rectangle 畫圖。。

          from?tkinter?import?*????
          canvas?=?Canvas(width?=?400,height?=?600,bg?=?'white')????
          left?=?20????
          right?=?50????
          top?=?50????
          num?=?15????
          for?i?in?range(num):????????
          ????canvas.create_oval(250?-?right,250?-?left,250?+?right,250?+?left)????????
          ????canvas.create_oval(250?-?20,250?-?top,250?+?20,250?+?top)????????
          ????canvas.create_rectangle(20?-?2?*?i,20?-?2?*?i,10?*?(i?+?2),10?*?(?i?+?2))????????
          ????right?+=?5????????
          ????left?+=?5????????
          ????top?+=?10????
          canvas.pack()????
          mainloop()

          實例065:畫組合圖形

          題目:?一個最優(yōu)美的圖案。

          import?math
          from?tkinter?import?*

          class?PTS:
          ????def?__init__(self):
          ????????self.x?=?0
          ????????self.y?=?0
          points?=?[]

          def?LineToDemo():
          ????screenx?=?400
          ????screeny?=?400
          ????canvas?=?Canvas(width?=?screenx,height?=?screeny,bg?=?'white')

          ????AspectRatio?=?0.85
          ????MAXPTS?=?15
          ????h?=?screeny
          ????w?=?screenx
          ????xcenter?=?w?/?2
          ????ycenter?=?h?/?2
          ????radius?=?(h?-?30)?/?(AspectRatio?*?2)?-?20
          ????step?=?360?/?MAXPTS
          ????angle?=?0.0
          ????for?i?in?range(MAXPTS):
          ????????rads?=?angle?*?math.pi?/?180.0
          ????????p?=?PTS()
          ????????p.x?=?xcenter?+?int(math.cos(rads)?*?radius)
          ????????p.y?=?ycenter?-?int(math.sin(rads)?*?radius?*?AspectRatio)
          ????????angle?+=?step
          ????????points.append(p)
          ????canvas.create_oval(xcenter?-?radius,ycenter?-?radius,
          ???????????????????????xcenter?+?radius,ycenter?+?radius)
          ????for?i?in?range(MAXPTS):
          ????????for?j?in?range(i,MAXPTS):
          ????????????canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)

          ????canvas.pack()
          ????mainloop()
          if?__name__?==?'__main__':
          ????LineToDemo()

          實例066:三數(shù)排序

          題目:?輸入3個數(shù)a,b,c,按大小順序輸出。

          raw=[]
          for?i?in?range(3):
          ????x=int(input('int%d:?'%(i)))
          ????raw.append(x)

          for?i?in?range(len(raw)):
          for?j?in?range(i,len(raw)):
          if?raw[i]>raw[j]:
          ????????????raw[i],raw[j]=raw[j],raw[i]
          print(raw)

          raw2=[]
          for?i?in?range(3):
          ????x=int(input('int%d:?'%(i)))
          ????raw2.append(x)
          print(sorted(raw2))

          實例067:交換位置

          題目:?輸入數(shù)組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數(shù)組。

          li=[3,2,5,7,8,1,5]

          li[-1],li[li.index(min(li))]=li[li.index(min(li))],li[-1]

          m=li[0]
          ind=li.index(max(li))
          li[0]=li[ind]
          li[ind]=m

          print(li)

          實例068:旋轉(zhuǎn)數(shù)列

          題目:?有n個整數(shù),使其前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面的m個數(shù)

          from?collections?import?*
          li=[1,2,3,4,5,6,7,8,9]
          deq=deque(li,maxlen=len(li))
          print(li)
          deq.rotate(int(input('rotate:')))
          print(list(deq))

          實例069:報數(shù)

          題目:?有n個人圍成一圈,順序排號。從第一個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。

          nmax?=?50
          n?=?int(input('請輸入總?cè)藬?shù):'))
          num?=?[]
          for?i?in?range(n):
          ????num.append(i?+?1)

          i?=?0
          k?=?0
          m?=?0

          while?m?1:
          ????if?num[i]?!=?0?:?k?+=?1
          ????if?k?==?3:
          ????????num[i]?=?0
          ????????k?=?0
          ????????m?+=?1
          ????i?+=?1
          ????if?i?==?n?:?i?=?0

          i?=?0
          while?num[i]?==?0:?i?+=?1
          print(num[i])

          實例070:字符串長度II

          題目:?寫一個函數(shù),求一個字符串的長度,在main函數(shù)中輸入字符串,并輸出其長度。

          def?lenofstr(s):????
          ???return?len(s)
          print(lenofstr('tanxiaofengsheng'))

          實例071:輸入和輸出

          題目:?編寫input()和output()函數(shù)輸入,輸出5個學生的數(shù)據(jù)記錄。

          N?=?3
          #stu
          #num?:?string
          #name?:?string
          liststudent?=?[]
          for?i?in?range(5):????
          ???student.append(['','',[]])
          def?input_stu(stu):????
          ???for?i?in?range(N):????????
          ???????stu[i][0]?=?input('input?student?num:\n')????????
          ????????stu[i][1]?=?input('input?student?name:\n')????????
          ????for?j?in?range(3):????????????
          ???????stu[i][2].append(int(input('score:\n')))
          def?output_stu(stu):????
          ???for?i?in?range(N):????????
          ???????print?('%-6s%-10s'?%?(?stu[i][0],stu[i][1]?))????????
          ????for?j?in?range(3):????????????
          ???????print?('%-8d'?%?stu[i][2][j])
          if?__name__?==?'__main__':????
          ???input_stu(student)????
          ???print?(student)????
          ???output_stu(student)

          實例072:創(chuàng)建鏈表

          題目:?創(chuàng)建一個鏈表。

          class?Node:

          ????def?__init__(self,?data):
          ????????self.data?=?data
          ????????self.next?=?None

          ????def?get_data(self):
          ????????return?self.data

          class?List:

          ????def?__init__(self,?head):
          ????????self.head?=?head

          ????def?is_empty(self):?
          ????????return?self.get_len()?==?0
          ????
          ????def?get_len(self):??
          ????????length?=?0
          ????????temp?=?self.head
          ????????while?temp?is?not?None:
          ????????????length?+=?1
          ????????????temp?=?temp.next
          ????????return?length

          ????def?append(self,?node):
          ????????temp?=?self.head
          ????????while?temp.next?is?not?None:
          ????????????temp?=?temp.next
          ????????temp.next?=?node

          ????def?delete(self,?index):?
          ????????if?index?1?or?index?>?self.get_len():
          ????????????print("給定位置不合理")
          ????????????return
          ????????if?index?==?1:
          ????????????self.head?=?self.head.next
          ????????????return
          ????????temp?=?self.head
          ????????cur_pos?=?0
          ????????while?temp?is?not?None:
          ????????????cur_pos?+=?1
          ????????????if?cur_pos?==?index-1:
          ????????????????temp.next?=?temp.next.next
          ????????????temp?=?temp.next

          ????def?insert(self,?pos,?node):
          ????????if?pos?1?or?pos?>?self.get_len():
          ????????????print("插入結(jié)點位置不合理")
          ????????????return
          ????????temp?=?self.head
          ????????cur_pos?=?0
          ????????while?temp?is?not?Node:
          ????????????cur_pos?+=?1
          ????????????if?cur_pos?==?pos-1:
          ????????????????node.next?=?temp.next
          ????????????????temp.next?=node
          ????????????????break
          ????????????temp?=?temp.next

          ????def?reverse(self,?head):
          ????????if?head?is?None?and?head.next?is?None:
          ????????????return?head
          ????????pre?=?head
          ????????cur?=?head.next
          ????????while?cur?is?not?None:
          ????????????temp?=?cur.next
          ????????????cur.next?=?pre
          ????????????pre?=?cur
          ????????????cur?=?temp
          ????????head.next?=?None
          ????????return?pre

          ????def?print_list(self,?head):
          ????????init_data?=?[]
          ????????while?head?is?not?None:
          ????????????init_data.append(head.get_data())
          ????????????head?=?head.next
          ????????return?init_data

          if?__name__=='__main__':
          ????head=Node('head')
          ????link=List(head)
          ????for?i?in?range(10):
          ????????node=Node(i)
          ????????link.append(node)
          ????print(link.print_list(head))

          實例073:反向輸出鏈表

          題目:?反向輸出一個鏈表。

          class?Node:

          ????def?__init__(self,?data):
          ????????self.data?=?data
          ????????self.next?=?None

          ????def?get_data(self):
          ????????return?self.data

          class?List:

          ????def?__init__(self,?head):
          ????????self.head?=?head

          ????def?is_empty(self):?
          ????????return?self.get_len()?==?0

          ????def?get_len(self):??
          ????????length?=?0
          ????????temp?=?self.head
          ????????while?temp?is?not?None:
          ????????????length?+=?1
          ????????????temp?=?temp.next
          ????????return?length

          ????def?append(self,?node):
          ????????temp?=?self.head
          ????????while?temp.next?is?not?None:
          ????????????temp?=?temp.next
          ????????temp.next?=?node

          ????def?delete(self,?index):?
          ????????if?index?1?or?index?>?self.get_len():
          ????????????print("給定位置不合理")
          ????????????return
          ????????if?index?==?1:
          ????????????self.head?=?self.head.next
          ????????????return
          ????????temp?=?self.head
          ????????cur_pos?=?0
          ????????while?temp?is?not?None:
          ????????????cur_pos?+=?1
          ????????????if?cur_pos?==?index-1:
          ????????????????temp.next?=?temp.next.next
          ????????????temp?=?temp.next

          ????def?insert(self,?pos,?node):
          ????????if?pos?1?or?pos?>?self.get_len():
          ????????????print("插入結(jié)點位置不合理")
          ????????????return
          ????????temp?=?self.head
          ????????cur_pos?=?0
          ????????while?temp?is?not?Node:
          ????????????cur_pos?+=?1
          ????????????if?cur_pos?==?pos-1:
          ????????????????node.next?=?temp.next
          ????????????????temp.next?=node
          ????????????????break
          ????????????temp?=?temp.next

          ????def?reverse(self,?head):
          ????????if?head?is?None?and?head.next?is?None:
          ????????????return?head
          ????????pre?=?head
          ????????cur?=?head.next
          ????????while?cur?is?not?None:
          ????????????temp?=?cur.next
          ????????????cur.next?=?pre
          ????????????pre?=?cur
          ????????????cur?=?temp
          ????????head.next?=?None
          ????????return?pre

          ????def?print_list(self,?head):
          ????????init_data?=?[]
          ????????while?head?is?not?None:
          ????????????init_data.append(head.get_data())
          ????????????head?=?head.next
          ????????return?init_data

          if?__name__=='__main__':
          ????head=Node('head')
          ????link=List(head)
          ????for?i?in?range(10):
          ????????node=Node(i)
          ????????link.append(node)
          ????print(link.print_list(head))
          ????print(link.print_list(link.reverse(head)))

          實例074:列表排序、連接

          題目:?列表排序及連接。
          程序分析:?排序可使用 sort() 方法,連接可以使用 + 號或 extend() 方法。

          a=[2,6,8]
          b=[7,0,4]
          a.extend(b)
          a.sort()
          print(a)

          實例075:不知所云

          題目:?放松一下,算一道簡單的題目。
          程序分析:?鬼知道是什么。

          for?i?in?range(5):
          ????n?=?0
          ????if?i?!=?1:?
          ???????n?+=?1
          ????if?i?==?3:?
          ???????n?+=?1
          ????if?i?==?4:?
          ???????n?+=?1
          ????if?i?!=?4:?
          ???????n?+=?1
          ????if?n?==?3:?
          ??????print?(64?+?i)

          實例076:做函數(shù)

          題目:?編寫一個函數(shù),輸入n為偶數(shù)時,調(diào)用函數(shù)求1/2+1/4+…+1/n,當輸入n為奇數(shù)時,調(diào)用函數(shù)1/1+1/3+…+1/n

          def?peven(n):
          ????i?=?0
          ????s?=?0.0
          ????for?i?in?range(2,n?+?1,2):
          ????????s?+=?1.0?/?i
          ????return?s

          def?podd(n):
          ????s?=?0.0
          ????for?i?in?range(1,?n?+?1,2):
          ????????s?+=?1.0?/?i
          ????return?s

          def?dcall(fp,n):
          ????s?=?fp(n)
          ????return?s

          if?__name__?==?'__main__':
          ????n?=?int(input('input?a?number:?'))
          ????if?n?%?2?==?0:
          ????????sum?=?dcall(peven,n)
          ????else:
          ????????sum?=?dcall(podd,n)
          ????print?(sum)

          實例077:遍歷列表

          題目:?循環(huán)輸出列表

          l=['moyu','niupi','xuecaibichi','shengfaji','42']
          for?i?in?range(len(l)):????
          ???print(l[i])

          實例078:字典

          題目:?找到年齡最大的人,并輸出。請找出程序中有什么問題。

          person?=?{"li":18,"wang":50,"zhang":20,"sun":22}
          m?=?'li'
          for?key?in?person.keys():
          ????if?person[m]?????????m?=?key

          print?('%s,%d'?%?(m,person[m]))

          實例079:字符串排序

          題目:?字符串排序。

          l=['baaa','aaab','aaba','aaaa','abaa']
          l.sort()
          print(l)

          實例080:猴子分桃

          題目:?海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子平均分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?

          i?=?0
          j?=?1
          x?=?0
          while?(i?5)?:
          ????x?=?4?*?j
          ????for?i?in?range(0,5)?:
          ????????if(x%4?!=?0)?:
          ????????????break
          ????????else?:
          ????????????i?+=?1
          ????????x?=?(x/4)?*?5?+1
          ????j?+=?1
          print(x)

          for?p?in?range(5):
          ????x=(x-1)/5*4
          print(x)

          實例081:求未知數(shù)

          題目:?809*??=800*??+9*?? 其中??代表的兩位數(shù), 809*??為四位數(shù),8*??的結(jié)果為兩位數(shù),9*??的結(jié)果為3位數(shù)。求??代表的兩位數(shù),及809*??后的結(jié)果。

          a?=?809
          for?i?in?range(10,100):
          ????b?=?i?*?a
          if?b?>=?1000?and?b?<=?10000?and?8?*?i?100?and?9?*?i?>=?100:
          ????????print(b,'?=?800?*?',?i,?'?+?9?*?',?i)

          for?i?in?range(10,100):
          if?8*i>99?or?9*i<100:
          continue
          if?809*i==800*i+9*i:
          ????????print(i)
          break

          實例082:八進制轉(zhuǎn)十進制

          題目:?八進制轉(zhuǎn)換為十進制

          n=eval('0o'+str(int(input('八進制輸入:'))))
          print(n)

          實例083:制作奇數(shù)

          題目:?求0—7所能組成的奇數(shù)個數(shù)。
          程序分析:

          • 組成1位數(shù)是4個。1,3,5,7結(jié)尾
          • 組成2位數(shù)是7*4個。第一位不能為0
          • 組成3位數(shù)是784個。中間隨意
          • 組成4位數(shù)是788*4個。
          sum?=?4
          s?=?4
          for?j?in?range(2,9):
          ???print(sum)
          ????if?j?<=?2:
          ???????s?*=?7
          ????else:
          ???????s?*=?8
          ????sum?+=?s???
          ??print('sum?=?%d'?%?sum)

          實例084:連接字符串

          題目:?連接字符串。

          delimiter?=?','
          mylist?=?['Brazil',?'Russia',?'India',?'China']
          print(delimiter.join(mylist))

          實例085:整除

          題目:?輸入一個奇數(shù),然后判斷最少幾個 9 除于該數(shù)的結(jié)果為整數(shù)。
          程序分析:?999999 / 13 = 76923。

          zi?=?int(input('輸入一個數(shù)字:'))
          n1?=?1
          c9?=?1
          m9?=?9
          sum?=?9
          while?n1?!=?0:
          ????if?sum?%?zi?==?0:
          ????????n1?=?0
          ????else:
          ????????m9?*=?10
          ????????sum?+=?m9
          ????????c9?+=?1
          print?('%d?個?9?可以被?%d?整除?:?%d'?%?(c9,zi,sum))
          r?=?sum?/?zi
          print?('%d?/?%d?=?%d'?%?(sum,zi,r))

          實例086:連接字符串II

          題目:?兩個字符串連接程序。

          a='guangtou'
          b='feipang'
          print(b+a)

          實例087:訪問類成員

          題目:?結(jié)構(gòu)體變量傳遞。

          class?student:????????
          ????x?=?0????????
          ????c?=?0????
          ????def?f(stu):????????
          ????????stu.x?=?20????????
          ????????stu.c?=?'c'????
          ????????a=?student()????
          ????????a.x?=?3????
          ????????a.c?=?'a'???
          ????????f(a)????
          print(a.x,a.c)

          實例088:打印星號

          題目:?讀取7個數(shù)(1—50)的整數(shù)值,每讀取一個值,程序打印出該值個數(shù)的*。

          for?i?in?range(3):
          ???print('*'*int(input('input?a?number:?')))

          實例089:解碼

          題目:?某個公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。

          n=input()
          n?=?str(n)
          a=[]
          for?i?in?range(4):
          ????a.append(int(n[i])+5)
          a[0],a[3]=a[3],a[0]
          a[1],a[2]=a[2],a[1]
          print?("".join('%s'?%s?for?s?in?a))

          實例090:列表詳解

          題目:?列表使用實例。

          #list??
          #新建列表?
          testList=[10086,'中國移動',[1,2,4,5]]??

          #訪問列表長度??
          print?(len(testList)??)
          #到列表結(jié)尾
          ?print?(testList[1:])
          #向列表添加元素????
          testList.append('i\'m?new?here!')??

          print?(len(testList)??)
          print?(testList[-1]??)
          #彈出列表的最后一個元素??
          print?(testList.pop(1)??)
          print?(len(testList)??)
          print?(testList??)
          st?comprehension??
          #后面有介紹,暫時掠過??
          matrix?=?[[1,?2,?3],??
          [4,?5,?6],??
          [7,?8,?9]]??
          print?(matrix??)
          print?(matrix[1]??)
          col2?=?[row[1]?for?row?in?matrix]#get?a??column?from?a?matrix??
          print?(col2??)
          col2even?=?[row[1]?for?row?in?matrix?if??row[1]?%?2?==?0]#filter?odd?item??
          print?(col2even)

          實例091:time模塊

          題目:?時間函數(shù)舉例1。

          import?time????
          print(time.ctime(time.time()))????
          print(time.asctime(time.localtime(time.time())))????
          print(time.asctime(time.gmtime(time.time())))

          實例092:time模塊II

          題目:?時間函數(shù)舉例2。

          程序分析:?如何浪費時間。

          import?time????
          start?=?time.time()????
          for?i?in?range(3000):????????
          ???print(i)????
          end?=?time.time()????
          print?(end?-?start)

          實例093:time模塊III

          題目:?時間函數(shù)舉例3。
          程序分析:?如何浪費時間。

          import?time????
          start?=?time.clock()????
          for?i?in?range(100):????????
          ???print(i)????
          end?=?time.clock()????
          print('different?is?%6.3f'?%?(end?-?start))

          實例094:time模塊IV

          題目:?時間函數(shù)舉例4。

          import?time
          import?random

          play_it?=?input('do?you?want?to?play?it.(\'y\'?or?\'n\')')
          while?play_it?==?'y':
          ????c?=?input('input?a?character:\n')
          ????i?=?random.randint(0,2**32)?%?100
          ????print?('please?input?number?you?guess:\n')
          ????start?=?time.clock()
          ????a?=?time.time()
          ????guess?=?int(input('input?your?guess:\n'))
          ????while?guess?!=?i:
          ????????if?guess?>?i:
          ????????????print('please?input?a?little?smaller')
          ????????????guess?=?int(input('input?your?guess:\n'))
          ????????else:
          ????????????print('please?input?a?little?bigger')
          ????????????guess?=?int(input('input?your?guess:\n'))
          ????end?=?time.clock()
          ????b?=?time.time()
          ????var?=?(end?-?start)?/?18.2
          ????print?(var)
          ????#?print?'It?took?you?%6.3?seconds'?%?time.difftime(b,a))
          ????if?var?15:
          ????????print?('you?are?very?clever!')
          ????elif?var?25:
          ????????print?('you?are?normal!')
          ????else:
          ????????print?('you?are?stupid!')
          ????print?('Congradulations')
          ????print?('The?number?you?guess?is?%d'?%?i)
          ????play_it?=?input('do?you?want?to?play?it.')

          實例095:轉(zhuǎn)換時間格式

          題目:?字符串日期轉(zhuǎn)換為易讀的日期格式。
          程序分析:?dateutil是個第三方庫。

          from?dateutil?import?parser
          dt?=?parser.parse("Aug?28?2015?12:00AM")
          print?(dt)

          實例096:計算復(fù)讀次數(shù)

          題目:?計算字符串中子串出現(xiàn)的次數(shù)。

          s1='xuebixuebixuebixuebixuebixuebixuebixue'
          s2='xuebi'
          print(s1.count(s2))

          實例097:磁盤寫入

          題目:?從鍵盤輸入一些字符,逐個把它們寫到磁盤文件上,直到輸入一個 # 為止。

          from?sys?import?stdout
          filename?=?input('輸入文件名:\n')
          fp?=?open(filename,"w")
          ch?=?input('輸入字符串:\n')
          while?ch?!=?'#':
          ????fp.write(ch)
          ????stdout.write(ch)
          ????ch?=?input('')
          fp.close()

          實例098:磁盤寫入II

          題目:?從鍵盤輸入一個字符串,將小寫字母全部轉(zhuǎn)換成大寫字母,然后輸出到一個磁盤文件"test"中保存。

          fp?=?open('test.txt','w')
          string?=?input('please?input?a?string:\n')
          string?=?string.upper()
          fp.write(string)
          fp?=?open('test.txt','r')
          print?(fp.read())
          fp.close()

          實例099:磁盤讀寫

          題目:?有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列), 輸出到一個新文件C中。

          import?string
          fp?=?open('test1.txt')
          a?=?fp.read()
          fp.close()

          fp?=?open('test2.txt')
          b?=?fp.read()
          fp.close()

          fp?=?open('test3.txt','w')
          l?=?list(a?+?b)
          l.sort()
          s?=?''
          s?=?s.join(l)
          fp.write(s)
          fp.close()

          實例100:列表轉(zhuǎn)字典

          題目:?列表轉(zhuǎn)換為字典。

          i?=?['a',?'b']
          l?=?[1,?2]
          print?(dict(zip(i,l)))
          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩一区二区三区四区论理片 | 中文字幕日韩乱伦 | 亚州在线视频 | 日韩产的人妻AV在线网 | 国产黄网站|