首页 > 编程语言 > 详细

python练习题----函数、内置函数、递归等

时间:2019-03-02 12:27:19      阅读:159      评论:0      收藏:0      [点我收藏+]
1. 列举布尔值为False的值
  { }、‘ ’、0、()、[ ]、False、None

2.
根据范围获取其中3和7整除的所有数的和,并返回调用者;符合条件的数字个数以及符合条件数字的总和
#自答
from functools import reduce

def zhengchu(num):
    a = []
    for i in range(num):
        if i%3 == 0 or i%7 == 0:
            a.append(i)
    print(len(a)-1)
    print(reduce(lambda x, y: x+y, a))
reslut = zhengchu(100)

#参答
def func(start_num,stop_number):
   res = []
   for i in range(start_num, stop_number):
      if i % 3 == 0 or i % 7 == 0:
         res.append(i)
   return res, sum(res), len(res)

test = func(1,100)
print(test)

3. 函数的默认返回值是 None

4. break、contiune、return的区别
  break:结束当前整个循环
  continue:结束本次循环进入下一次循环
return:结束函数,并返回结果,默认为None

5. 使用set集合获取两个列表l1 = [11, 22, 33],l2 = [22, 33, 44]中的相同元素
l1 = [11,22,33]
l2 = [22,33,44]
set1 = set(l1)
set2 = set(l2)
same = set1 & set2
print(same)

 


6.
定义函数统计一个字符串中大写字母、小写字母、数字的个数,并以字典为结果返回给调用者
#自答
li= areyou23HHH

def con(li):
    num = 0
    al = 0
    AL = 0
    for i in li:
        if 48 <= ord(i) <= 57:
            num +=1
        if 97 <= ord(i) <= 122:
            al +=1
        if 97 <= ord(i) <= 122:
            AL +=1
    print({数字: num})
    print({小写字母: al})
    print({数字: AL})

con(li)

#参答
def func(st):
   dic = {}
   count_num = 0
   count_cap = 0
   count_low = 0
   for i in st:
      if i.isdigit():
         count_num += 1
      elif i.isupper():
         count_cap += 1
      elif i.islower():
         count_low += 1
   dic[数字] = count_num
   dic[大写字母] = count_cap
   dic[小写字母] = count_low
   return dic
test_str = func(ASD-+xcf123)
print(test_str)

 

 
7. 函数的位置参数、关键字参数、默认参数、可变长参数
位置参数:按形参的位置传入较位置参数,即普通参数
关键字参数:传入实参时指定形参的值
默认参数:形参直接指定默认值得参数
可变长参数:*args **kwargs,前者只能接收没有位置参数的实参或传入的列表、元组,后者可以接收关键字参数,和字典格式。
有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序的

8. 字符串“你好”转为以 utf-8 编码形式转换为字节
#自答
a = 你好
b = a.encode(utf-8)
print(b)

#参答
s = 你好
b_s1 = bytes(s,utf-8)
print(b_s1)

 

 

9. 利用内置函数zip(),实现如下功能:

l1 = [‘alex‘,11,22,33]
l2 = [‘is‘,11,22,33]
l3 = [‘good‘,11,22,33]
l4 = [‘boy‘,11,22,33]
请获取字符串s = ‘alex_is_good_boy‘
#自答
l1 = [alex, 11, 22, 33]
l2 = [is, 11, 22, 33]
l3 = [good, 11, 22, 33]
l4 = [boy, 11, 22, 33]
t = _
l1_index = l1.index(alex)
l2_index = l2.index(is)
l3_index = l3.index(good)
l4_index = l4.index(boy)
s = l1[l1_index]+t+l2[l2_index]+t+l3[l3_index]+t+l4[l4_index]
print(s)


#参答
l1 = [alex, 11, 22, 33]
l2 = [is, 11, 22, 33]
l3 = [good, 11, 22, 33]
l4 = [boy, 11, 22, 33]
print(_.join(list(zip(l1,l2,l3,l4))[0]))    *.join()可以连接元组中的字符串元素

 

 
9. 利用递归实现 1*2*3*4*5*6*7 = 5040
#自答
def multi(num,su = 1):
    if num > 7:
        return su
    su *= num
    return multi(num+1,su)

f = multi(1)
print(f)


#参答
def multi(num,su = 1):
    if num > 7:
        return su
    su *= num
    return multi(num+1,su)

f = multi(1)
print(f)

from functools import reduce
res = reduce(lambda x,y:y*x,range(1,8))
print(res)

 

 
10、利用with实现同时打开两个文件(一读,一写,并将读取的内突写入到写入模式的文件中)
with open(scores, r, encoding=utf-8) as f1, open(copy, w, encoding=utf-8) as f2:
    f2.write(f1.read())

 



11. 有如下两个列表,第一个列表中的数字无序不重复排列,第二个为空列表
需求:
取出列表1的最小值放到列表2的首个位置
取出列表1的最小值(仅大于上次一的最小值)放到列表2的首个位置
取出列表1的最小值(仅大于上次一的最小值)放到列表2的首个位置...
以此类推,从而获取一个有序的列表2,并将其返回给函数调用者
li_unorder = [6, 1, 7, 8, 2, 9, 3, 5]
li_order = []
for i in range(len(li_unorder)):
    li_order.append(min(li_unorder))
    li_unorder.remove(min(li_unorder))
print(li_order)

12.猴子吃桃:猴子第一天摘下若干个桃子,当即吃了一半,不过瘾就多吃了一个。第二天又将剩下的桃子吃了一半,不过瘾多吃了一个。
以后每天都吃前一天剩下的一般再加一个。到第10天刚好剩下
。问猴子第一天摘了多少个桃子?




 



 

 



 
 














python练习题----函数、内置函数、递归等

原文:https://www.cnblogs.com/cjsword/p/10460395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!