python练习题(3)


前言

Python由荷兰数学计算机科学研究学会的吉多·范罗苏姆 于1990 年代初设计,作为一门叫做ABC语言的替代品。

[1]  Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言

[2]  随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发

[3] Python解释器易于扩展,可以使用C语言C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 

[4]  Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码机器码.

[5] 2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上


一、练习一(杨辉三角)

杨辉三角形,是二项式系数在三角形中的一种几何排列。

中国南宋数学家杨辉在 1261 年所著的《详解九章算法》一书有明确记载。

欧洲数学家帕斯卡在 1654 年发现这一规律,所以又叫做帕斯卡三角形。

其定义为:其顶端(第 1 行) 是 1;第 2 行是两个 1;第 3 行是‘1,2,1’,中间的‘2’ 是其上方相邻的两个数字的和

【编程实现】
对于任意输入的 3~15 之间的正整数 n,请编程输出 前 n 行数字、以及由其组成的杨辉三角形。
输入描述:一个正整数 n(2 ≤ n ≤ 15)。 
输出描述:由两部分组成。第一部分输出由 n 行数字组成的列表;
第二部分输出n 行数字组成的杨辉三 角形。 

代码如下:

def tr_1(x):
    tr = [[1],[1,1]]
    #初始化前两层数据
    n = 3
    #从第三层开始满足
    while n <= x:
        for i in range(0,n - 1):
            #列表的第一位下标是0
            if i == 0:
                tr.append([1,1])
            else:
                tr[n - 1].insert(i,tr[n - 2][i] + tr[n - 2][i - 1])
                #逐层计算
        n += 1
    return tr
x = 11
tr = tr_1(x)
for i in range(x):
    #print(tr[i])
    print(' '.join(str(tr[i])).center(100))

方法二:

b=int(input())
a=[[1],[1,1]]
    
for i in range(2,b):
    a.append([])
    a[i].append(1)
    for j in range(1,i):
        a[i].append(a[i-1][j]+a[i-1][j-1])
    a[i].append(1)
for i in range(len(a)):
    for j in range(len(a)-i-1):
        print('  ',end='')
    for k in a[i]:
       #能够以 3个字符宽度左对齐的方式显示数字k
        print('{:<3}'.format(k),end=' ')
    print()

二、练习二(约分)

约分是把分数化成最简分数的过程,约分后分数的值不变,
且分子分母的最大公约数为1,若最终结果的分母为1,则直接用整数表示。
两个以逗号分隔输入的整数,可以采用如下方法进行转换、分离: 
str = input() nums = eval(str)

【编程实现】

输入:输人两个正整数(以逗号分隔)分别作为分数的分子和分母。
输出:第一行显示输人的分数:第二行显示约分后得到的最简分数,
若分母为1,直接用整数表示。

 代码如下:

def gys(m, n):#公因数
   for i in range(1,min(m,n) + 1):
       if((m % i == 0) and (n % i == 0)):
           gys = i
   return gys
def yuefen(x,y):
    z=gys(x,y)
    x=int(x/z)
    y=int(y/z)
    if y==1:
        print(x)
        return
    print(str(x)+'/'+str(y)) 
s=input()
nums=eval(s)
fz=nums[0]
fm=nums[1]
print(str(fz)+'/'+str(fm))
yuefen(fz,fm)

三、练习三(圆半径120外接12个菱形60度锐角)

【编程实现】

圆半径120外接12个菱形60度锐角

示例如下图:

 

  代码如下:

from turtle import*
penup()
goto(0,120)
pendown()
speed(15)
for i in range (12):
    left(120)
    for i in range (2):
        pencolor("black")
        fillcolor("yellow")
        begin_fill()
        forward(80)
        right(60)
        forward(80)
        right(120)
        end_fill()
    right(120)
    pencolor("red")
    circle(-120,30)
hideturtle()
done()

总结

以上就是今天要讲的内容,本文仅仅练习了三道题,而博主提供了大量的文章能使我们的python技术更上一层楼,有兴趣的话可以翻看博主之前的文章(不敢吱声)。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值