乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      100個Python練手小程序

       孟玄同mxy 2018-11-21

      100個Python練手小程序,學習python的很好的資料,覆蓋了python中的每一部分,可以邊學習邊練習,更容易掌握python。

      【程序1】
      題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復數(shù)字的三位數(shù)?都是多少?
      1.程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去
            掉不滿足條件的排列。
      2.程序源代碼:

      for i in range(1,5):
          for j in range(1,5):
              for k in range(1,5):
                  if( i != k ) and (i != j) and (j != k):
                      print (i,j,k)
      • 1
      • 2
      • 3
      • 4
      • 5

      【程序2】
      題目:企業(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,求應發(fā)放獎金總數(shù)?
      1.程序分析:請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型?!     ?
      2.程序源代碼:

      bonus1 = 100000 * 0.1
      bonus2 = bonus1 + 100000 * 0.500075
      bonus4 = bonus2 + 200000 * 0.5
      bonus6 = bonus4 + 200000 * 0.3
      bonus10 = bonus6 + 400000 * 0.15
      
      i = int(raw_input('input gain:\n'))
      if i <= 100000:
          bonus = i * 0.1
      elif i <= 200000:
          bonus = bonus1 + (i - 100000) * 0.075
      elif i <= 400000:
          bonus = bonus2 + (i - 200000) * 0.05
      elif i <= 600000:
          bonus = bonus4 + (i - 400000) * 0.03
      elif i <= 1000000:
          bonus = bonus6 + (i - 600000) * 0.015
      else:
          bonus = bonus10 + (i - 1000000) * 0.01
      print 'bonus = ',bonus
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

      【程序3】
      題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?
      1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后
            的結(jié)果滿足如下條件,即是結(jié)果。請看具體分析:
      2.程序源代碼:

      include "math.h"
      main()
      {
      long int i,x,y,z;
      for (i=1;i<100000;i++)
       { x=sqrt(i+100);   /*x為加上100后開方后的結(jié)果*/
        y=sqrt(i+268);   /*y為再加上168后開方后的結(jié)果*/
         if(x*x==i+100&&y*y==i+268)/*如果一個數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/
          printf("\n%ld\n",i);
       }
      } 
      '''
      import math
      for i in range(10000):
          #轉(zhuǎn)化為整型值
          x = int(math.sqrt(i + 100))
          y = int(math.sqrt(i + 268))
          if(x * x == i + 100) and (y * y == i + 268):
              print i
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19

      題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
      1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊
            情況,閏年且輸入月份大于3時需考慮多加一天。
      2.程序源代碼:

      year = int(raw_input('year:\n'))
      month = int(raw_input('month:\n'))
      day = int(raw_input('day:\n'))
      
      months = (0,31,59,90,120,151,181,212,243,273,304,334)
      if 0 <= month <= 12:
          sum = months[month - 1]
      else:
          print 'data error'
      sum += day
      leap = 0
      if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
          leap = 1
      if (leap == 1) and (month > 2):
          sum += 1
      print 'it is the %dth day.' % sum
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16

      【程序5】
      題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。
      1.程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,
            然后再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。
      2.程序源代碼:

      l = []
      for i in range(3):
          x = int(raw_input('integer:\n'))
          l.append(x)
      l.sort()
      print l
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      【程序6】
      題目:用*號輸出字母C的圖案。
      1.程序分析:可先用’*’號在紙上寫出字母C,再分行輸出。
      2.程序源代碼:

      print 'Hello Python world!\n'
      print '*' * 10
      for i in range(5):
          print '*        *'
      print '*' * 10
      print '*\n' * 6
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      【程序7】
      題目:輸出特殊圖案,請在c環(huán)境中運行,看一看,Very Beautiful!
      1.程序分析:字符共有256個。不同字符,圖形不一樣?!     ?
      2.程序源代碼:

      a = 176
      b = 219
      print chr(b),chr(a),chr(a),chr(a),chr(b)
      print chr(a),chr(b),chr(a),chr(b),chr(a)
      print chr(a),chr(a),chr(b),chr(a),chr(a)
      print chr(a),chr(b),chr(a),chr(b),chr(a)
      print chr(b),chr(a),chr(a),chr(a),chr(b)
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

      【程序8】
      題目:輸出9*9口訣。
      1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
      2.程序源代碼:

      include "stdio.h"
      main()
      {
       int i,j,result;
       printf("\n");
       for (i=1;i<10;i++)
        { for(j=1;j<10;j++)
          {
           result=i*j;
           printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3位*/
          }
         printf("\n");/*每一行后換行*/
        }
      }
      for i in range(1,10):
          for j in range(1,10):
              result = i * j
              print '%d * %d = % -3d' % (i,j,result)
          print ''
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19

      【程序9】
      題目:要求輸出國際象棋棋盤。
      1.程序分析:用i控制行,j來控制列,根據(jù)i+j的和的變化來控制輸出黑方格,還是白方格。
      2.程序源代碼:

      include "stdio.h"
      main()
      {
      int i,j;
      for(i=0;i<8;i++)
       {
        for(j=0;j<8;j++)
         if((i+j)%2==0)
          printf("%c%c",219,219);
         else
          printf(" ");
         printf("\n");
       }
      }
      import sys
      for i in range(8):
          for j in range(8):
              if(i + j) % 2 == 0:
                  sys.stdout.write(chr(219))
                  sys.stdout.write(chr(219))
              else:
                  sys.stdout.write(' ')
          print ''
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23

      【程序10】
      題目:打印樓梯,同時在樓梯上方打印兩個笑臉。
      1.程序分析:用i控制行,j來控制列,j根據(jù)i的變化來控制輸出黑方格的個數(shù)。
      2.程序源代碼:

      import sys
      sys.stdout.write(chr(1))
      sys.stdout.write(chr(1))
      print ''
      
      for i in range(1,11):
          for j in range(1,i):
              sys.stdout.write(chr(219))
              sys.stdout.write(chr(219))
          print ''
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10

      【程序11】
      題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月
         后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?
      1.程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21….
      2.程序源代碼:

      main()
      {
      long f1,f2;
      int i;
      f1=f2=1;
      for(i=1;i<=20;i++)
       { printf("%12ld %12ld",f1,f2);
         if(i%2==0) printf("\n");/*控制輸出,每行四個*/
         f1=f1+f2; /*前兩個月加起來賦值給第三個月*/
         f2=f1+f2; /*前兩個月加起來賦值給第三個月*/
       }
      }
      f1 = 1
      f2 = 1
      for i in range(1,21):
          print '%12d %12d' % (f1,f2)
          if (i % 2) == 0:
              print ''
          f1 = f1 + f2
          f2 = f1 + f2
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

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

      h = 0
      leap = 1
      from math import sqrt
      from sys import stdout
      for m in range(101,201):
          k = int(sqrt(m + 1))
          for i in range(2,k + 1):
              if m % i == 0:
                  leap = 0
                  break
          if leap == 1:
              print '%-4d' % m
              h += 1
              if h % 10 == 0:
                  print ''
          leap = 1
      print 'The total is %d' % h
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

      【程序13】
      題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)
         本身。例如:153是一個“水仙花數(shù)”,因為153=1的三次方+5的三次方+3的三次方。
      1.程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。
      2.程序源代碼:

      for n in range(100,1001):
          i = n / 100
          j = n / 10 % 10
          k = n % 10
          if i * 100 + j * 10 + k == i + j ** 2 + k ** 3:
              print "%-5d" % n
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      【程序14】
      題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。

      程序分析:對n進行分解質(zhì)因數(shù),應先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成:
      (1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。
      (2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,
       重復執(zhí)行第一步。
      (3)如果n不能被k整除,則用k+1作為k的值,重復執(zhí)行第一步。

      2.程序源代碼:

      from sys import stdout
      n = int(raw_input("input number:\n"))
      print "n = %d" % n
      
      for i in range(2,n + 1):
          while n != i:
              if n % i == 0:
                  stdout.write(str(i))
                  stdout.write("*")
                  n = n / i
              else:
                  break
      print "%d" % n
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13

      【程序15】
      題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,
         60分以下的用C表示。
      1.程序分析:(a>b)?a:b這是條件運算符的基本例子。
      2.程序源代碼:
      不支持這個運算符

      score = int(raw_input('input score:\n'))
      if score >= 90:
          grade = 'A'
      elif score >= 60:
          grade = 'B'
      else:
          grade = 'C'
      
      print '%d belongs to %s' % (score,grade)
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

      【程序17】
      題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。
      1.程序分析:利用while語句,條件為輸入的字符不為’\n’.
            
      2.程序源代碼:

      import string
      s = raw_input('input a string:\n')
      letters = 0
      space = 0
      digit = 0
      others = 0
      for c in s:
          if c.isalpha():
              letters += 1
          elif c.isspace():
              space += 1
          elif c.isdigit():
              digit += 1
          else:
              others += 1
      print 'char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others)
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16

      題目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時
         共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。
      1.程序分析:關(guān)鍵是計算出每一項的值。
      2.程序源代碼:

      Tn = 0
      Sn = []
      n = int(raw_input('n = :\n'))
      a = int(raw_input('a = :\n'))
      for count in range(n):
          Tn = Tn + a
          a = a * 10
          Sn.append(Tn)
          print Tn
      
      Sn = reduce(lambda x,y : x + y,Sn)
      print Sn
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12

      【程序19】
      題目:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如6=1+2+3.編程
         找出1000以內(nèi)的所有完數(shù)。
      1. 程序分析:請參照程序<–上頁程序14.
      2.程序源代碼:

      from sys import stdout
      for j in range(2,1001):
          k = []
          n = -1
          s = j
          for i in range(1,j):
                  if j % i == 0:
                      n += 1
                      s -= i
                      k.append(i)
      
          if s == 0:
              print j
              for i in range(n):
                  stdout.write(k[i])
                  stdout.write(' ')
              print k[n]
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

      【程序20】
      題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
         第10次落地時,共經(jīng)過多少米?第10次反彈多高?
      1.程序分析:見下面注釋
      2.程序源代碼:

      Sn = 100.0
      Hn = Sn / 2
      
      for n in range(2,11):
          Sn += 2 * Hn
          Hn /= 2
      
      print 'Total of road is %f' % Sn
      print 'The tenth is %f meter' % Hn
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多