04Python函数调用和递归

Python函数调用和递归
一.
(1)掌握Python语言中定义函数的方法。
(2)理解Python函数调用的过程。
(3)掌握递归的基本思想。

二.内容
(1)请使用Python语言编写递归函数,实现十进制数到R进制的转换,且2≤R<10。
1.
通过自定义函数,先将数字字符保存进入数组中,同时对数组进行,同时通过while语句进入循环,通过求商取余运算,,进行进制之间地数值转换,同时将相应地结果保存进入数组中,最后通过转置的结果查找最初保存的相关字符,再通过用户输入调用相关函数进行运算操作。
2.

def jinzhizhanhuan(n,x):
    a=[0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F']
    b=[]
    while True:
        s=n//x
        y=n%x
        b=b+[y]
        if s==0:
            break
        n=s
    b.reverse()
    for i in b:
        print(a[i],end='')

S = input("input number and jingzhi:")
L = S.split(',')
jinzhizhanhuan(int(L[0]),int(L[1]))

(2)请用Python语言编写一个简单的把二进制小数转换为十进制小数的程序。要求输入一个二进制小数,例如输入“0.1011”,代表二进制小数0.10112,输入相应的十进制小数。
1.
通过split区分记入小数点后值,然后通过for循环对小数点后的值进行成对应位置-1的2次方操作,将二进制小数转换为相应的十进制小数。
2.核心代码及算法片段

def dec(s):
    a,b = s.split('.')
    decimal = 0
    for i in range(len(b)):
        decimal += 2 ** (-i - 1) * int(b[i])
    return  decimal

S = input("input number:")
print(dec(S))

(3)请编写一个Python程序,用“四位一并法”实现二进制整数到十六进制整数的转换。要求程序输入一个二进制整数,输出一个相应的十六进制整数。
1.
本题可以直接利用之前实验中写入的进制转换函数,通过定义好二进制和十六进制,直接实现两数之间的转换。
2.核心代码及算法片段

def erjinzhi(n,x):
    a=[0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F']
    b=[]
    c=""
    while True:
        s=n//x
        y=n%x
        b=b+[y]
        if s==0:
            break
        n=s
    b.reverse()
    for i in b:
        print(a[i],end='')

S = input("input a number:")
b = int(S,2)
erjinzhi(b,16)

(4)完成merge(L1, L2) 函数:输入参数是两个从小到大排好序的整数列表L1和L2,返回合成后的从小到大排好序的大列表X。例如:merge([1, 4, 5], [2, 7])会返回[1, 2, 4, 5, 7];merge([ ], [2, 3, 4])会返回[2, 3, 4]。
1.
本实验最简单的方式便是使用extend函数对元素进行写入,直接利用列表排序已定义好的函数sort能够直接实现李彪从小到大的排序。

2.核心代码及算法片段

def merge(L1,L2):
    L = []
    L.extend(L1)
    L.extend(L2)
    L.sort()
    return L

print(merge([1,4,5],[2,7]))
print(merge([],[4,3,2]))
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值