函数习题

##################################################################################### 1.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。#方法一# def func(s):#     lis = []#     for i in range(len(s)):#         if i%2 ==1:#            lis.append(li[i])#     return lis# li = (1,2,3,4,5)# print(func(li))#方法二  多此一举我为了回顾下拆分组合还有类型调用# def func(*args):#     args1 = list(args[1::2])#     return args1# li = (1,2,3,4,5)# print(func(*li))# 方法二简便方法 也是通用方法# def func(s):#     lis = s[1::2]#     lis1 = list(lis)#     return lis1# s = (1,2,3,4,5)# print(func(s))

#   2.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。# def func(s):#     if len(s)>5:#         return True#     else :#         return False# s = ‘12377775‘# print(func(s))# #这两个一句话就能出来# def func(s):#     num = 0#     for i in s:#         num += 1#     return True if num > 5 else False

#   3.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。# def func(s):#     if len(s)>2:#         s = s[:2]#         return s# s = [1,2,3,4,5]# print(func(s))

# def list_back(user):#     result=[]#     if len(user)>2:#        result.append(user[0])#        result.append(user[1])#     return result# a=[1,2,3,4,5,6]# print(list_back(a))

#   4.写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数# def func(i):#     num = 0#     num1 = 0#     num2  = 0#     num3   = 0#     for s in i:#         if s.isdigit():#             num += 1#         elif s.isalpha():#             num1 += 1#         elif s.isspace():#             num2 += 1#         else:#             num3 += 1#     return num,num1,num2,num3## s = input(‘请输入内容‘)# a,b,c,d = func(s)# print(a,b,c,d)# print(‘数字为{}个,字母为{}个,空格为{}个,其他为{}个‘.format(a,b,c,d))

# 一、习题讲解## 1、写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组。例如:[(‘红心’,2), (‘草花’,2), …(‘黑桃,‘A’)]# lis = []# lis1 = []# dic = {}# s = (‘方块‘,‘梅花‘,‘红桃‘,‘黑桃‘)# num1 = (‘J‘,‘Q‘,‘K‘,‘A‘)# for i in range(2,11):#     lis1.append(i)# for j in num1:#     lis1.append(j)# for i in lis1:#     dic = dic.fromkeys(s,i)#     for x in  dic.items():#         lis.append(x)# print(lis)# 方法二# def func():#     lis = []#     lis1 = []#     s = (‘方块‘,‘梅花‘,‘红桃‘,‘黑桃‘)#     num1 = (‘J‘,‘Q‘,‘K‘,‘A‘)#     for i in range(2,11):#         lis1.append(i)#     for j in num1:#         lis1.append(j)#     for i in lis1:#         for x in  s:#             lis.append((x,i))#     return lis# print(func())

# 2、写函数,传入n个数,返回字典:{‘max’:最大值,’min’:最小值}。例如: min_max(2, 5, 7, 8, 4),返回: {‘max’:8,’min’:2}# def dic_num(*args):#     dic = {}#     args = list(args)#     args.sort()#     dic[‘max‘] = args[-1]#     dic[‘min‘] = args[0]#     return dic# s = (1,2,5,6,7,8)# print(dic_num(*s))# 方法二# def dic_num(*args):#     num_min = args[0]#     num_max = args[0]#     for i in args:#         if num_max < i:#             num_max = i#         if num_min > i:#             num_min = i#     return {‘max‘:num_max,‘min‘:num_min}# s = (1,2,5,6,7,8)# print(dic_num(*s))

# 3、写函数,专门计算图形的面积。其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积##    调用函数area(‘圆形’, 圆半径)  返回圆的面积#   调用函数area(‘正方形’, 边长)  返回正方形的面积#   调用函数area(‘长方形’, 长,宽)  返回长方形的面积# #方法一:# import math# def func(name,*args):#     def area_yuan(args):#         return args * args * math.pi#     def area_fang(args):#         return args/4 * args/4#     def area_chang(x,y):  #必须接收两个值#         return x * y#     if name == ‘长方形‘:#        return area_chang(*args)#     if name == ‘正方形‘:#         return area_fang(*args)#     if name == ‘圆形‘:#         return area_yuan(*args)# print(func(‘长方形‘, 3, 4))# print(func(‘圆形‘, 3))# print(func(‘正方形‘, 4))# 方法二# import math# def area(name,*args):#     def areas_rectangle(x,y):#         return x*y##     def area_square(x):#         return x**2##     def area_round(r):#         return math.pi*r*r##     if name=="圆形":#         return  area_round(*args)#     elif name=="正方形":#         return area_square(*args)#     elif name=="长方形":#         return areas_rectangle(*args)## print(area(‘长方形‘, 3, 4))# print(area(‘圆形‘, 3))# print(area(‘正方形‘, 3))# 复制代码# 复制代码# #方法二(eval)# import math# def area(name,*args):#     def rectangle(x,y):#         return x*y##     def square(x):#         return x**2##     def round(r):#         return math.pi*r*r#     if name in locals():#         return eval(name)(*args)# print(area(‘rectangle‘,13,2))# 4、写函数,传入一个参数n,返回n的阶乘。例如: cal(7) 计算7 * 6 * 5 * 4 * 3 * 2 * 1# def cal(num):#     y = 1#     for i in range(num,1,-1):  #可以是0或1#         y = y*i#     return y# print(cal(7))

# 5、斐波那契数列:[1,1,2,3,5,8,13,...],每个元素为前两个元素之和##   (1)当要求长度小于20的时候:# l = [1,1]# while len(l) < 20:#     l.append(l[-1]+l[-2])# print(l)## l = [1,1]# while l[-1] < 20000:#     l.append(l[-2]+l[-1])# print(l)###################################################################### 二、函数装饰器##   在不修改原函数的内容及调用方式的前提下,对原函数进行功能扩展## 1、计算函数执行时间实例## import time# def timmer(f):#     def inner(*args,**kwargs):#         start = time.time()#         set = f(*args,**kwargs)#         print(time.time()-start)#         return set#     return inner# @timmer# def func(x,y):#     time.sleep(0.1)   #沉睡0.1秒 系统方便计数#     print(‘hollow world‘)#     return x**y# print(func(4,6))

# 2、打印当前正在调用函数名的实例## def fun(f):#     def inner(*args,**kwargs):#         set = f(*args,**kwargs)#         with open(‘函数调用实例‘,‘a‘,encoding=‘utf-8‘)as f1:#             f1.write(f.__name__ + ‘|‘)#             print(f.__name__)#         return set#     return inner# @fun# def func():#     print(‘wahha‘)# func()# @fun# def funcf():#     print(‘efwef‘)# funcf()

# 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码# flag = False# def func(f):#     def inner(*args,**kwargs):#         global flag#         if flag:#             set = f(*args, **kwargs)#             return set#         else:#             with open(‘函数调用实例‘,‘r‘,encoding=‘utf-8‘) as f1:#                 s =f1.readline()#                 s = s.split(‘|‘)#             username = input(‘请输入用户名‘)#             password = input(‘请输入密码‘)#             if s[0] == username and s[1] == password:#                 print(‘登录成功‘)#                 flag = True#                 set = f(*args, **kwargs)#                 return set#             else:#                 print(‘登录失败‘)#     return inner# @func# def fun():#     print(‘新年好‘)# fun()# @func# def fun4():#     print(‘新年好‘)

原文地址:https://www.cnblogs.com/Ebola-/p/8158374.html

时间: 2024-10-21 21:52:59

函数习题的相关文章

Python编程快速上手-让繁琐工作自动化 第三章 函数习题及其答案

第三章 函数习题及其答案 1.为什么在程序中加入函数会有好处? 答:函数减少了重复的代码.这让程序更短,更容易阅读,更容易修改. 2.函数中的代码何时执行: 在函数被定义时,还是在函数被调用时? 答:函数中的代码在函数被调用时执行,而不是在函数定义时. 3.什么语句创建一个函数? 答:def语句定义了(创建了)一个函数. 4.一个函数和一次函数调用有什么区别? 答:函数包含def语句和在def子句中的代码.函数调用让程序执行转到函数内,函数调用求值为该函数的返回值. 5.Python程序中有多少

Python开发【第xxx篇】 函数习题

1.简述普通参数.指定参数.默认参数.动态参数的区别 # ######### 定义函数 ######### # name 叫做函数func的形式参数,简称:形参 def func(name): print name # ######### 执行函数 ######### # 'wupeiqi' 叫做函数func的实际参数,简称:实参 func('wupeiqi') def func(name, age = 18): print "%s:%s" %(name,age) # 指定参数 fun

Python__函数习题

1.简述普通参数.指定参数.默认参数.动态参数的区别 1 # ######### 定义函数 ######### 2 3 # name 叫做函数func的形式参数,简称:形参 4 def func(name): 5 print name 6 7 # ######### 执行函数 ######### 8 # 'wupeiqi' 叫做函数func的实际参数,简称:实参 9 func('wupeiqi') 10 11 def func(name, age = 18): 12 13 print "%s:%

Python 函数习题

#encoding=utf-8 from urllib.request import urlopen import random import os ''' 1. 定义一个fuc(url, folder_path) 获取url地址的内容,保存到folder_path的文件目录下,并随机生成一个文件名. ''' def save_url_content(url,folder_path=None): if not (url.startswith('http://') or url.startswit

第6章 函数 习题

---恢复内容开始--- 6.27  编写一个函数,它的参数是Initializer_lister<list>类型的对象,函数功能是计算列表中所有元素之和. 1 #include <iostream> 2 using namespace std; 3 4 int iCount (initializer_list<int> il) 5 { 6 int count=0; 7 for (auto val:il) 8 count+=val; 9 return count; 10

[日常] Go语言圣经-匿名函数习题2

练习5.13: 修改crawl,使其能保存发现的页面,必要时,可以创建目录来保存这些页面.只保存来自原始域名下的页面.假设初始页面在golang.org下,就不 要保存vimeo.com下的页面. package main import ( "fmt" "io" "io/ioutil" "links" "log" "net/http" "net/url" "

Perl语言入门(中文版)(第6版) 东南大学出版社

第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? Larry干吗不用其他语言? Perl算容易,还是算难? Perl怎么会这么流行? 现在的Perl发展得怎么样了? 哪些事情最适合用Perl来做? 哪些事情不适合用Perl来做? 如何取得Perl? CPAN是什么? 如何得到Perl的技术支持? 还有别的技术支持方式吗? 如果发现Perl有bug

C#语言课程11月11日

今天主要学习了out传值还有进行了将原来的一些习题用函数的方法写出来,以达到熟练使用函数. 一.out传值的使用 二.函数习题的练习 1.输入一个年份,判断是否为闰年(能被4整除却不能被100整除的年份.世纪年份能被400整除的闰年) 2.100以内与7无关的数 个位数是7十位数是77的倍数 今天小结:今天通过习题的练习已经基本掌握了函数的调用形式和使用方法,仍需要多做练习.

初来乍到的新人而已

我是个新人,博客新人,也是编程的新人,我比较喜欢研究一些新奇的东西,数学的东西,我数学也确实不是很怎么样,但我觉得数学是个很神奇的东西,所以科学的基础,真正的计算机研究者必须懂数学(不然就是一个只会编码的码农,很苦逼的板砖者),开这个博客的目的是想与有共同爱好的人一起交流,最近想研究一下Donald E. Knuth大师的做品具体数学>,不过估计有太多的看不懂的地方,我也想把它写出来与大家讨论交流..... 我先把它的目录写出来: 第1章 递归问题1.1 河内塔1.2 平面上的直线1.3 若瑟夫