PYTHON学习之路_PYTHON基础(4)
学习内容:
1、Python函数的基本语法
2、Python函数的返回值与变量
3、Python嵌套函数
4、Python递归函数及实例(二分查找)
5、Python匿名函数
6、Python内置方法
7、Python实例
一、Python函数的基本语法
1、定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
def f(n):
print (n**n)
return n**2
2、特性
(一)减少重复代码
(二)使程序变的可扩展
(三)使程序变得易维护
3、参数
(一)形参
定义函数时使用的参数叫形参。
(二)实参
调用函数时使用的参数叫实参。
(三)默认参数
默认参数是预先将函数变量赋值,默认参数的位置需放在后面
(四)关键参数
关键参数必须放置在位置参数后面
(五)非固定参数
*args 非字典类型 **kwargs 字典类型
二、Python函数的返回值与变量的作用域
1、函数执行后return语句指定返回的内容。return语句同时也代表着函数的结束。若不指定则返回None。
2、局部变量的作用域只是函数体内;全局变量的作用域是整个程序。
三、Python嵌套函数
函数中定义一个函数即为嵌套函数
四、Python递归函数及实例(二分查找)
函数中定义的函数是函数本身,即为递归函数。
二分查找法实例:
# data = [1,3,5,7,9,11,13,14,15,17,18,27,34,35,37,38,39,46]
# def func(list,find_num):
# middle_list = int(len(list) / 2)
# if len(list)>0:
#
# if list[middle_list] == find_num:
# print ('got it....',list[middle_list])
# exit()
# if list[middle_list] > find_num:
# list=list[:middle_list]
# print ('going to left side',list[:middle_list])
# func(list,find_num)
# else:
# list=list[middle_list+1:]
# print ('going to right side',list[middle_list+1:])
# func(list,find_num)
# else:
# print ('None...')
#
# func(data,9)
五、Python匿名函数
匿名函数lambda:
res=map(lambda x:x**x,range(10))
for i in res:
print(i)
六、Python内置方法
# print(chr(98))
# print(ord('b'))
# name = "alex"
# print(callable(sayhi))
# print(callable(name))
# print(ascii("地方"))
# print(bin(10))
# f = open("返回值.py",encoding="utf-8")
# print(dir(f))
# code = compile(f.read(),'','exec')
# print( code )
# exec(code)
# print(divmod(10,3))
# for i in filter(lambda x:x>5, range(10)):
# print(i)
# a = frozenset({1,4,5,5,6})
# b = {1,4,5,5,6}
# print(a)
# def sayhi():
# name="alex"
# print(locals())
# print(globals()) #把当前程序所在内存里的所有数据都以字典的形式打印出来
# print(min([4,2,5,77,2]))
# print(oct(8))
# print(pow(4,9))
# msg = "又回到最初的起点"
# f = open("tofile","w",encoding="utf-8")
# print(msg,"记忆中你青涩的脸",sep="|",end="=",file=f)
# data = "abc"
# data = reversed(data)
# for i in data:print(i)
# print(round(10.26,1))
# data = [10,2,3,45,56,3]
# print(sum(data))
# print(vars())
# print(set(data))
# a = range(20)
# pattern = slice(3,8,1)
# for i in a[pattern]: #等于a[3:8:2]
# print(i)
# a = "alex"
# a = sorted(a)
# print(a)
七、Python实例
有以下员工信息表
当然此表你在文件存储时可以这样表示
1
|
1 ,Alex Li, 22 , 13651054608 ,IT, 2013 - 04 - 01 |
现需要对这个员工信息文件,实现增删改查操作
- 可进行模糊查询,语法至少支持下面3种:
- select name,age from staff_table where age > 22
- select * from staff_table where dept = "IT"
- select * from staff_table where enroll_date like "2013"
- 查到的信息,打印后,最后面还要显示查到的条数
- 可创建新员工纪录,以phone做唯一键,staff_id需自增
- 可删除指定员工信息纪录,输入员工id,即可删除
- 可修改员工信息,语法如下:
- UPDATE staff_table SET dept="Market" WHERE where dept = "IT"
注意:以上需求,要充分使用函数,请尽你的最大限度来减少重复代码!
PYTHON学习之路_PYTHON基础(4)的更多相关文章
- PYTHON学习之路_PYTHON基础(1)
学习内容: 1.Python介绍 2.Python程序初接触和变量 3.Python用户交互 4.Python数据类型 5.Python循环if...(elif)...else 6.Python循环w ...
- PYTHON学习之路_PYTHON基础(10)
学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...
- PYTHON学习之路_PYTHON基础(8)
学习内容: Python模块介绍 1.经典类 or 新式类 2.抽象接口 3.静态方法.类方法.属性方法 4.反射 5.异常处理 6.socket编程初识 7.用socket实现get.put文件等功 ...
- PYTHON学习之路_PYTHON基础(6)
学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...
- PYTHON学习之路_PYTHON基础(3)
学习内容: 1.Python字典 2.Python集合 3.Python字符编码 4.Python文件操作 5.Python实例 一.Python字典 1.定义: dic1={'name':'alex ...
- PYTHON学习之路_PYTHON基础(2)
学习内容: 1.Python数据类型与变量 2.Python字符串 3.Python列表 4.Python while循环 5.Python字典 6.Python实例 一.Python数据类型与变量 ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
随机推荐
- C# 委托和事件 与 观察者模式(发布-订阅模式)讲解 by天命
使用面向对象的思想 用c#控制台代码模拟猫抓老鼠 我们先来分析一下猫抓老鼠的过程 1.猫叫了 2.所有老鼠听到叫声,知道是哪只猫来了 3.老鼠们逃跑,边逃边喊:"xx猫来了,快跑啊!我是老鼠 ...
- 修改tomcat的端口
- (转) PowerDesigner逆向工程导入MYSQL数据库总结
PowerDesigner逆向工程导入MySQL数据库总结 由于日常数据建模经常使用PowerDesigner,使用逆向工程能更加快速的生成模型提高效率,所以总结使用如下: 1. 安装MYS ...
- 如何把apdu[decode_len]打印出来
memcpy(data, &apdu[decode_len], apdu_len - decode_len); int i = 0; for(i=0;i<apdu_len;i ...
- 编辑器Ultraedit快捷键
编辑器Ultraedit快捷键说到编辑器的快捷键,VIM是无与伦比的.要反对,也得是带脚踏板的EmaCS.UE还是有差距的,很大差距.注意:VIM是开源.免费的,而UE则需要注册.UE是Windows ...
- curl模拟登录新浪微博
这几天要做个获取新浪微博@我的信息, 又不用第三方登录,所以只能通过模拟登录来获取信息,研究的一下发现直接模拟登录微博比较困难,验证的算法比较复杂,于是绕道通过登录新浪通行证后来获取cookie 来 ...
- jquery each遍历节点使用
---恢复内容开始--- $("#aaa :input[type='text']").each(function(i){ alert(this.value); this.v ...
- linux操作系统-memcache安装
安装配置 1. 安装libevent # tar zxf libevent-1.4.6-stable.tar.gz # cd libevent-1.4.6-stable # ./configure # ...
- jdk8 Lambda表达式与匿名内部类比较
Labmda表达式与匿名内部类 前言 Java Labmda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法.实际上Lambda表达式并不仅仅是匿名内部类的语法糖, ...
- HTTP Client工具类
HTTP Client工具类: import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.ht ...