天天看點

(程式設計)10個Python練手小程式

【程式1】

題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

1.程式分析:可填在百位、十位、個位的數字都是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)                

阿裡雲代金券2000元免費領取位址:

https://promotion.aliyun.com/ntms/yunparter/invite.html

新老阿裡雲賬戶均可領取!可用于購買阿裡雲伺服器ECS、雲資料庫RDS、虛拟主機、安騎士、DDoS高防IP等100多雲計算産品。 代金券自領取之日起,有效期是30天,請及時使用,過30天後還可以重新領取。

【程式2】

題目:企業發放的獎金根據利潤提成。利潤(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,求應發放獎金總數?

1.程式分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。      

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

【程式3】

題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?

1.程式分析:在10萬以内判斷,先将該數加上100後再開方,再将該數加上268後再開方,如果開方後

      的結果滿足如下條件,即是結果。請看具體分析:

include "math.h"

main()

{

long int i,x,y,z;

for (i=1;i<100000;i++)

 { x=sqrt(i+100);   /x為加上100後開方後的結果/

  y=sqrt(i+268);   /y為再加上168後開方後的結果/

   if(xx==i+100&&yy==i+268)/如果一個數的平方根的平方等于該數,這說明此數是完全平方數/

    printf("n%ldn",i);

 }

}

'''

import math

for i in range(10000):

#轉化為整型值
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.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊

      情況,閏年且輸入月份大于3時需考慮多加一天。

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]           
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

【程式5】

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

1.程式分析:我們想辦法把最小的數放到x上,先将x與y進行比較,如果x>y則将x與y的值進行交換,

      然後再用x與z進行比較,如果x>z則将x與z的值進行交換,這樣能使x最小。

l = []

for i in range(3):

x = int(raw_input('integer:n'))
l.append(x)           

l.sort()

print l

【程式6】

題目:用号輸出字母C的圖案。

1.程式分析:可先用’’号在紙上寫出字母C,再分行輸出。

print 'Hello Python world!n'

print '' 10

for i in range(5):

print '        '           

print 'n' 6

【程式7】

題目:輸出特殊圖案,請在c環境中運作,看一看,Very Beautiful!

1.程式分析:字元共有256個。不同字元,圖形不一樣。      

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)

【程式8】

題目:輸出9*9口訣。

1.程式分析:分行與列考慮,共9行9列,i控制行,j控制列。

include "stdio.h"

 int i,j,result;

 printf("n");

 for (i=1;i<10;i++)

  { for(j=1;j<10;j++)

    {

     result=ij;

     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 ''

【程式9】

題目:要求輸出國際象棋棋盤。

1.程式分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。

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 ''

【程式10】

題目:列印樓梯,同時在樓梯上方列印兩個笑臉。

1.程式分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。

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 ''