编程语言入门经典100例【Python版】01-10

上一篇 / 下一篇  2014-12-17 12:19:14 / 个人分类:python100例


前两天在学习python时看到有人说“无论学习哪门计算机语言,只要把100例中绝大部分题目都做一遍,就基本掌握该语言的语法了。”就想自己也用python来把100例编写以练习。

通过练习才发现之前看入门视频以为自己会的用起来很多敲不出来,一些python的细节会遗忘。前面5例在写之前都会想想用哪个语句来敲。不过到后面好了。还有其他问题就在题目里写出来了。

以下是昨天花了挺长时间的成果(全部运行通过):

#题目:有1234个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#1.程序分析:可填在百位、十位、个位的数字都是1234。组成所有的排列后再去

#      掉不满足条件的排列。

#2.程序源代码:

#一开始是不知道用什么好,后面练习了一些发现还可以用while循环1-4

s = [1,2,3,4]              

su=0

for i in s:

   for j in s:

       for k in s:

          if i!=k and i!=j and j!=k:

             # print i,j,k

              su = su+1

print su

 

#【程序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.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      

#2.程序源代码:
#if else 只能用三次让我为此大费脑筋,后来终于想到用while来圈定范围

i= int(raw_input('plz enter fit:'))      

bonus=0

bonus1=100000*0.1;bonus2=bonus1+100000*0.75

bonus4=bonus2+200000*0.5

bonus6=bonus4+200000*0.3

bonus10=bonus6+400000*0.15

if i<=100000:

   bonus=i*0.1

elif i<=200000:

   bonus=bonus1+(i-100000)*0.075

else:

   bonus=bonus2+(i-200000)*0.05

while i>=600000:

   if i<=600000:

       bonus=bonus4+(i-400000)*0.03

   elif i<=1000000:

       bonus=bonus6+(i-600000)*0.015

   else:

       bonus=bonus10+(i-1000000)*0.01

   break

print bonus

 

#【程序3

#题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后

#      的结果满足如下条件,即是结果。请看具体分析:

#2.程序源代码:
#这里的x和y一开始没有用int指定类型,导致很多数输出,今天才整理思路用int限定

import math   

i=1

j=0

while i<100000:

   i=i+1

   x=int(math.sqrt(i+100))

   y=int(math.sqrt(i+268))

   if x*x == i+100 and y*y == i+268:

       print i

 

 

 

#【程序4

#题目:输入某年某月某日,判断这一天是这一年的第几天?

#1.程序分析:以35日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊

#      情况,闰年且输入月份大于3时需考虑多加一天。

#2.程序源代码:


#没有switch语句,就只好用上while了,在python中我把while当c中的for和switch用了。希望以后学多了能用更简单的方式代替

year = int(raw_input("\nplease input year"))

month = int(raw_input("\nplease input month"))

day = int(raw_input("\nplease input day"))

su = 0

print month

while month>0:

   print month-1

   break

while month <= 3:

   print while1

   if month == 1:

       su = 0

   elif month == 2:

       su = 31

   else:

       su = 59

   break

while month > 3 and month <= 6:  

   if month == 4:

       su = 90

   elif month == 2:

       su = 120

   else:

       su = 151

   break

while month >= 7 and month <= 9:

   if month == 7:

       su = 181

   elif month == 8:

       su = 212

   else:

       su = 243

   break

while month > 9 and month <= 12:

   if month == 10:

       su = 273

   elif month == 11:

       su = 304

   else:

       su = 334

   break

 

su=su+day

print su

if year%400==0 or year%4==0 and year%100!=0:

   leap=1

else:

   leap=0

if leap==1 and month>2:

   su = su+1

print su

 

#【程序5

#题目:输入三个整数x,y,z,请把这三个数由小到大输出。

#1.程序分析:我们想办法把最小的数放到x上,先将xy进行比较,如果x>y则将xy的值进行交换,

#      然后再用xz进行比较,如果x>z则将xz的值进行交换,这样能使x最小。

#2.程序源代码:

#没什么好说的

x = int(raw_input("\nplease input x: "))

y = int(raw_input("\nplease input y: "))

z = int(raw_input("\nplease input z: "))

if x>y:

   t=x

   x=y

   y=t

if x>z:

   t=z

   z=x

   x=t

if y>z:

   t=y

   y=z

   z=t

print "small to big\n",x,y,z


#【程序6

#题目:用*号输出字母C的图案。

#1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。

#2.程序源代码:

#没什么好说的

 

print "Hello C-world!\n"

print " ****\n"

print " *\n"

print " * \n"

print " ****\n"

 

#【程序7

#题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

#1.程序分析:字符共有256个。不同字符,图形不一样。      

#2.程序源代码:

#使用了print的格式化输出

 

s = "%c%c%c%c%c"%(219,176,176,176,219)

print s

s = "%c%c%c%c%c"%(219,176,219,176,219)

print s

s = "%c%c%c%c%c"%(219,176,219,219,219)

print s

 

#【程序8

#题目:输出9*9口诀。

#1.程序分析:分行与列考虑,共99列,i控制行,j控制列。

#2.程序源代码:

#while代替c中的for时,第二重循环中j要在第一重里定好初值

#print的换行问题在没网的时候考虑了很久,最后用手机搜得知只要在print语句后面加个逗号

i = 1

j = 0

res = 0

while i<10:

   j=i

   while j<10:                       

       res = i*j

       print i,'*',j,'=%3d'%(res),

       j=j+1      

   i=i+1

   print ' '

#【程序9

#题目:要求输出国际象棋棋盘。

#1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

#2.程序源代码:

#同程序8

i=0

j=0

while i<8:

   i=i+1   

   while j<8:

       j=j+1

       if (i+j)%2==0:

           print 'b',

       else:

           print 'w',

   j=0

   print ' '

 

#【程序10

#题目:打印楼梯,同时在楼梯上方打印两个笑脸。

#1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

#2.程序源代码:

 #同程序8

i=1

while i<11:

   i=i+1

   j=1

   while j<i:

       j=j+1

       print 'smile',

   print ' '





TAG: Python python python100

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 10450
  • 日志数: 4
  • 建立时间: 2014-10-29
  • 更新时间: 2015-01-22

RSS订阅

Open Toolbar