函数学习

range函数
•生成有序的序列
•生成数字队列可以定制

# range函数案例1
# 生成一个从1到10的数字序列
# range的生成序列的两个面数字是左包括,右不包括(如下所示只包括1不包括10)
dig_list = range (1,10)
for dig in dig_list:print (dig)

1
2
3
4
5
6
7
8
9

#range案例2
#打印1到9的数字序列
for dig in range (1,10):print (dig)

1
2
3
4
5
6
7
8
9

函数
•函数是代码的一种组织形式
•函数能完成一项特地的工作,一般 一个函数值完成一项工作
•有些语言中,分两个概念 :函数和过程 ,有返回结果的叫函数,无返回结果的叫做过程,在python中不加以区分
•函数的使用:
◾函数需要提前定义
◾使用函数,俗称 调用

•定义一个函数
◾只是定义函数的话是不会被执行的,只有调用时才执行
◾1,def关键字,后跟一个空格
◾2,函数名字,自己定义,起名需要遵循便令命名规则,约定俗称,大驼峰命名只给类用
◾3,后面括号和冒号不能省略,括号内可以由参数
◾4,函数内所有代码缩进

参数

str

list,tupe,set,map

#定义函数案例
#def 空格 括号
def hanshu1():print ("在同一个缩进内的才是函数内容")print("我是一个函数")
print ("因为不在一个缩进内所以不是函数")

因为不在一个缩进内所以不是函数

#函数的调用
#直接写出函数的名字,后面的小括号不能省略,括号内的内容根据情况(定义函数时是否输入东西就是参数)
hanshu1()

在同一个缩进内的才是函数内容
我是一个函数

函数的参数和返回值
•参数:负责给函数传递一些必要的数据或者信息◾形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符好
◾实参(实际参数):在调用函数的时候输入的值

•返回值; 调用函数的时候的一个执行结果◾使用 return 返回结果
◾如果没有值需要返回,推荐使用 return None 表示函数结束
◾函数一旦执行return,则函数立即结束
◾如果函数没有return 关键字,则返回默认的None

# 形参和实参
#参数una只是一个符号
#调用得时候用另一个
def hanshu2 (una):print ("{},你在干嘛啊?".format(una))print ("{},我很想你。".format(una))u = "雨"
#调用函数,需要把u作为实参传入hanshu2(u)

雨,你在干嘛啊?
雨,我很想你。

a = "雨雨"
hanshu2(a)

雨雨,你在干嘛啊?
雨雨,我很想你。

#返回
def hello (una):print ("{0},你在干嘛啊?".format(una))print ("{},我很想你。".format(una))return Noneu = "雨雨"
#调用函数,需要把u作为实参传入
hello(u)

雨雨,你在干嘛啊?
雨雨,我很想你。

u = hello("小雨")
print (u)

小雨,你在干嘛啊?
小雨,我很想你。
None

# help 负责随时为你提供帮助
help (print)

Help on built-in function print in module builtins:

print(…)
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file:  a file-like object (stream); defaults to the current sys.stdout.
sep:   string inserted between values, default a space.
end:   string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
#使用函数打印九九乘法表
def jiujiu():for o in range (1,10):#控制外循环,从1到9for i in range (1,o + 1):#内循环,每次从第一个数字开始,打印到跟行数相同的数量print (o * i,end="  ") #行是o 列是iprint ()return None
jiujiu()
jiujiu()

1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81

#函数嵌套使用
def printline(line_num):'''line_num:代表行号'''for i in range(1, line_num + 1):print (line_num * i,end = "  ")print ()def jiujiu():for o in range (1,10):printline(o)return None
jiujiu()

1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81

参数详解
•参数分类
◾普通参数/位置参数
◾默认参数
◾关键字参数
◾收集参数

# 普通参数案例
def a(A,B,C,D):print (A + C)return None
a(1,2,3,4)
#----------------------------------def a(A,B,C,D):print (A + C)return None
a2(1,2,3,)#普通参数也叫位置参数因下面参数和上面未对应上所以报错

4


NameError Traceback (most recent call last)
in
9 print (A + C)
10 return None
—> 11 a2(1,2,3,)#普通参数也叫位置参数因下面参数和上面未对应上所以报错
12

NameError: name ‘a2’ is not defined

# 默认参数案例
def default_para(A,B,C=100):print (A + B)print (C)#c就是默认参数return None
default_para(100,200)

300
100

# 关键字参数案例
def keys_para(A,B,C):print (A + B)print (C)return None
keys_para(A=1,B=2,C=10)
keys_para(C=10,B=2,A=1)#调用参数没有顺序的影响

3
10
3
10

STR字符串
•str
•转义字符
•格式化
•内建函数

字符串
•表示文字信息
•用单引号,双引号,三引号括起来

s = "i love una"
print (s)

i love una

转义字符
•用一个特色的方法表示出一系列不方便写出的内容,比如回车键,换行符,退格键等
•借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个或者几个字符表示已经不是原来的意思了,进行了转义
•在字符串中,一旦出现反斜杠就要加倍小心,可能有转义字符出现
•不同系统对 换行操作有不同的表示
◾windows: \n
◾linux: \r\n

#转义字符案例1
#想表达    Let's Go
#使用转义字符
a = 'Let\'s Go'
print (a)# 使用单双引号嵌套
b = "Let's Go"
print (b)#表示斜杠\
#比如 表示: C:\etc\mnt
c = "C:\\etc\\mnt"
print (c)#回车换行
#效果如下:
# I
# love
# una
d = "\n I \n love \n una"
print (d)
#windows下 \r\n效果一样
d = "I \r\nlove\r\nuna"
print (d)

Let’s Go
Let’s Go
C:\etc\mnt

I
love
una
I
love
una

•转义字符:\ (反斜杠-可以打印出一个反斜杠)

•转义字符:’ (单引号-可以打印出一个单引号)

•转义字符:" (双引号-可以打印出一个双引号)

•转义字符:\a (响铃-用于触发系统蜂鸣器)

•转义字符:\n (换行符-将光标移动到下一行的开头)

•转义字符:\t (水平制表符-将光标向右移动一个制表符位)

格式化
•把字符串按照一定格式打印出来或者填充
•格式化分类◾传统格式化
◾format

# 填充
a = "i love una"
print (a)
a = "i love yangyu"
print (a)
a = "i love yuyu"
print (a)

i love una
i love yangyu
i love yuyu

字符串的传统格式化方法
•使用%进行格式化
•%(百分号)也叫占位符◾%s:字符串◦%r :字符串,但是是使用repr而不是str
◦%c : 整数转换为单个字符
◦%d : 十进制整数
◦%u : 无符号整数
◦%o : 表示八进制
◦%x : 十六进制,字母为小写(x为小写)
◦%X : 十六进制,字母为小写(X为小写)
◦%e : 浮点数(e为小写),例如2.87e+12
◦%E : 浮点数(E为小写),例如2.87E+12
◦%f,%F : 浮点数十进制形式
◦%g,%G : 十进制形式浮点数或者指数浮点数自动转换
◦格式符前边出现"-“表示左对齐
◦格式符前边出现”+"表示右对齐
◦0位数不足用”0“补齐
◦width表示宽度
◦pricision 精度

# %s 表示简单得字符串
# 占位符可以单独使用
s = "i love %s"
print (s)s = "i love %s"
print (s%"una")#想用某个东西替换占位符
print (s%"小雨")

i love %s
i love una
i love 小雨

print("i love %s"%"雨雨")
#占位符一般只能被同类型替换,或者替换类型能被转换成占位符的类型
print("i love %s"%520)

i love 雨雨
i love 520

a = "gemoumou同学现在%d斤了,感觉瘦了不少"
print (a%120)
#以下打印会出错
print (a%"120")

gemoumou同学现在120斤了,感觉瘦了不少


TypeError Traceback (most recent call last)
in
2 print (a%120)
3 #以下打印会出错
----> 4 print (a%“120”)

TypeError: %d format: a number is required, not str

b = "i am %fKG weight,%fM height"
print (b)
#如果需要格式化的信息多个,则用括号括起来
print (b%(60,175))#实际需要进行格式化的信息数量必须与百分号后面的出的数据量匹配,否则报错
# 如下面例子,实际需要格式化的为4个地方,但是给出的数据为三个,则报错
b = "i am %.2fKG weight,%.2fM height"   #%.2的意思就是小数点后面几位的意思
print (b%(60,175))

i am %fKG weight,%fM height
i am 60.000000KG weight,175.000000M height
i am 60.00KG weight,175.00M height

format格式化
•使用函数形式进行格式化,代替以前的百分号

#不用指定位置,按顺序读取
#方式1
s = "{} {}!"
print (s.format("hello","una"))
#方式2
s = "{} {}!".format("hello","una")
print (s)
#设置指定位置
s = "{0} {1}".format("hello","una")
print (s)s = "{1} {1}".format("hello","una")
print (s)s = "i love {1} and {0} i love me".format("雨雨","una")
print (s)#使用命名参数
s = "我是{name1},我最喜欢{name2}"
s = s.format(name1 = "gpc",name2 = "una")
print (s)

hello una!
hello una!
hello una
una una
i love una and 雨雨 i love me
我是gpc,我最喜欢una

#通过字典设置参数,需要解包
s = "我是{a1},我最喜欢{a2},我们要{a3}"
s_zidian = {"a1":"gpc",\"a2":"una",\"a3":"幸福一辈子"}
s = s.format(**s_zidian)
print (s)

我是gpc,我最喜欢una,我们要幸福一辈子

#对数字的格式化需要用到
s = "gpc is {:.2f}m heigh,{:.2f}kg weight"
print (s.format(1.73, 60.00))
#使用大括号{}来转移大括号
s = "format 函数是使用{}来进行占位"
print (s)

gpc is 1.73m heigh,60.00kg weight
format 函数是使用{}来进行占位

str 内置函数
•很多语言字符串使用 string表示,但是python中用str表示字符串
•字符串查找类, find index,islower
•find :查找字符串中是否包含一个子串
•index : 跟find的唯一区别是index如果找不到会异常报错
•rfind ,lfind : 从左开始查找或者从右开始查找

help (str.find)

Help on method_descriptor:

find(…)
S.find(sub[, start[, end]]) -> int

Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end].  Optional
arguments start and end are interpreted as in slice notation.Return -1 on failure.
a = "ge peng cheng love yang yu"
# 返回第一次发现这个字符串的位置
s1 = "yang yu"
s.find (s1)
#返回-1表示没找到
s2 = "una"
s.find (s2)

-1

s.index (s1)

19

#index 会报错或者引发异常
s.index (s2)

ValueError Traceback (most recent call last)
in
----> 1 s.index (s2)

ValueError: substring not found

#使用的时候可以使用区间
a = "ge peng cheng love yang yu and yu yu"
s1 = "yu"
#从下表20开始查找,看能否找到
a.find (s1,24)

24
判断类函数

•此类函数的特点一般使用is开头,比如 islower

•isalpha:判断是否是字母,需要注意两点:
◾此函数默认的前提是字符串至少包含一个字符,如果没有,同样返回false
◾汉字被认为是 alpha,所以此函数不能作为区分英语字母还是汉字表示,区分中英文请使用unicode码
◾注意使用区别,防止被坑

•isdigit,isnumeric,isdecimal 三个判断数字的函数
◾此类函数不建议使用,在后期爬虫中,判断是否是数字采用正则表达式的方式

# 以下三个都不是,因为有除了字母以外的空格等
s1 = "我对着天空发誓,gpc深深爱着yy"
s2 = "bengboerba is friend of baboerbeng"
s3 = "www.gpc.com is the 1.txt"
print (s1.isalpha())
print (s2.isalpha())
print (s3.isalpha())

False
False
False

aa = "一二三四"
print (aa.isdigit())
print (aa.isnumeric())
print (aa.isdecimal())

False
True
False

内容判断类
•startswith/endswith : 是否以xxx开头或者结尾
◾检测某个字符串是否以某个子串开头,常用三个参数
◾suffix:被检查的字符串,必须有
◾start : 检查范围的开始
◾end : 检查范围的结尾

•isupper/slower:判断字符串是否是大写或者小写

gpc = "ge peng cheng"
yy = "yang yu"
l = "ge peng cheng love yang yu"print (gpc.startswith(gpc))
print (yy.endswith(yy))

True
True

#判断下列字符中是否全是小写
# s1 s2 包含空格,但空格不影响结果
s1 = "ge peng cheng love yang yu"
s2 = "Ge Peng Cheng love Yang Yu"
s3 = "gepengchengloveyangyu"
s4 = "葛爱杨"
print (s1.islower())
print (s2.islower())
print (s3.islower())
#汉字字符串中无大小写区分
print (s4.islower())
print (s4.isupper())

True
False
True
False
False

操作类函数
•format : 格式化用的
•strip : 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。◾lstrip rstrip

•join : 对字符串进行拼接(是吧可迭代的字符串拼接在一起,中间使用调用字符串作为分隔符)

l = "         ge peng cheng love yang yu            "
# strip 删除末尾空格或者换行符
print (l.strip())
print (l)
#join案例
s1 = "!!!!!"
s2 = "________"
s3 = "         "
ss= ["ge pengcheng","yangyu","una","gpc"]
print (s1.join(ss))
print (s2.join(ss))
print (s3.join(ss))

ge pengcheng!!!yangyu!!!una!!!gpc
ge pengcheng________yangyu________una________gpc
ge pengcheng yangyu una gpc

python学习笔记三一 函数学习相关推荐

  1. python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用

    本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...

  2. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  3. Python学习笔记12_函数

    Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...

  4. php中声明一个函数,php学习笔记之 函数声明

    /* 函数定义: * 1.函数是一个被命名的 * 2.独立的代码段 * 3.函数执行特定任务 * 4.并可以给调用它的程序返回一个值 * * 函数的优点: * 1.提高程序的重用性 * 2.提高程序的 ...

  5. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  6. JAVA学习笔记五---函数

    JAVA学习笔记五---函数 5.1 方法的学习 编写一个程序,求圆的周长和面积. package practice; /*** 编写一个程序,求圆的周长和面积.* @author iszhangyo ...

  7. MySQL学习笔记—自定义函数

    MySQL学习笔记-自定义函数 注释语法: MySQL服务器支持3种注释风格: 从'#'字符从行尾. 从'– '序列到行尾.请注意'– '(双破折号)注释风格要求第2个破折号后面至少跟一个空格符(例如 ...

  8. matlab机器人工具箱学习笔记——ikine函数

    matlab机器人工具箱学习笔记--ikine函数 ikine函数用法 使用实例 链接: https://blog.csdn.net/weixin_42596724/article/details/8 ...

  9. 《JavaScript语言精粹》学习笔记(函数(2))

    <JavaScript语言精粹>学习笔记(函数(2)) 函数(Functions) 参数(Arguments) 当参数被调用时,会得到一个"免费"的参数数组argume ...

最新文章

  1. 6.没有Release文件。N:无法安全地用该源进行更新,所以默认禁用该源解决
  2. 刚柔并济的开源分布式事务解决方案
  3. 德式秘籍:产品总监最该学会的管理方法是什么?(一)
  4. freemark静态页面中文乱码
  5. 疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...
  6. Git之创建远程分支和删除远程分支
  7. pause容器作用_Kubernetes学习之pause容器
  8. (41)Gulp Reload热更新
  9. 花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)
  10. insert into select 死锁
  11. 实现中文下的UITableView Index
  12. 中柏平板触摸驱动_要成绩也要玩乐,聊聊学生买平板那些事儿
  13. 如何在 Mac 上阻止 FaceTime 通话和 iMessage 信息?
  14. 类似于Function.bind的dojo.hitch --dojo Quick Start/dojo入门手册4
  15. 网站通行证的交互设计分析
  16. 【路由器无线桥接的步骤实现】水星路由器MW150R作为副路由器无线桥接TP-Link主路由器
  17. IOS通过加速感应器实现手机实现手机屏幕上的足球可以来回的滚动反弹
  18. 【精华】超详细的Win10安装步骤,菜鸟福音
  19. 夜间环境人脸识别_基于人脸识别的夜间疲劳驾驶判断方法与流程
  20. 阿里云服务器被攻击危害有多大

热门文章

  1. python mro c3_python的MRO和C3算法
  2. error.html mp4,HTML Video error用法及代码示例
  3. Nginx的405 not allowed错误解决
  4. PHP中的call_user_func_array
  5. r语言 xmlto html,R语言XML文件
  6. 联想服务器做完raid找不到硬盘,联想服务器RAID配置步骤
  7. java Mina sftp_java – 使用Apache Mina作为模拟/内存SFTP服务器进行单元测试
  8. C语言位于30到100之间的一个奇数,《帮你度过C语言新手阶段》系列之三
  9. [linux] sftp/ssh异常:ssh_selinux_copy_context getcon failed with No such file or directory
  10. docker 不挂断创建容器