函数和模块的调用
函数的作用
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,是可以实现一些特定功能的小方法或是小程序。Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。函数能提高应用的模块性,和代码的重复利用率。就是你编写了一些语句,为了方便使用这些语句,把这些语句组合在一起,给它起一个名字。使用的时候只要调用这个名字,就可以实现语句组的功能了。
定义函数规则:
定义规则:
1、函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
2、任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
3、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4、函数内容以冒号起始,并且缩进。
5、return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
实例:
def is_prime(n):
"""
判断素数
:param n: 非负整数
:return: 判断结果
"""
for x in range(2, n):
if n % x == 0:
return False
print(n, '是素数')
函数的参数
在 python 中,类型属于对象,变量是没有类型的。函数的参数可以有默认值,也支持使用可变参数,所以Python并不需要像其他语言一样支持函数的重载。
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
def is_prime(n):
缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
def is_prime(n = 0):
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。
def is_prime(*args):
用模块管理函数
Python中每个文件就代表了一个模块(module),我们在不同的模块中可以有同名的函数,在使用函数的时候我们通过import关键字导入指定的模块就可以区分到底要使用的是哪个模块中的foo函数。
字符串和常用数据结构
字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号(‘或”)来创建字符串。
转义字符
转义字符 | 描述 |
---|---|
(在行尾时) | 续行符 |
\ | 反斜杠符号 |
\’ | 单引号 |
\” | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\r | 回车 |
\t | 横向制表符 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
运算符
操作符 | 描述 |
---|---|
+ | 字符串连接 |
* | 重复输出字符串 |
[] | 通过索引获取字符串中字符 |
[ : ] | 字符串切片 |
in | 成员运算符 |
not in | 重复输出字符串 |
r/R | 成员运算符 |
常用方法
操作符 | 描述 |
---|---|
len(str) | 字符串长度 |
str.capitalize() | 首字母大写 |
str.upper() | 字符串大写 |
str.lower() | 字符串小写 |
str.find() | 查找字符串(返回位置) |
str.index() | 查找字符串(失败会报错) |
str.startswith() | 查找开始字符串 |
str1.endswith() | 查找末尾字符串 |
str1.center() | 中间填充字符串 |
str1.rjust() | 右填充字符串 |
列表
创建
直接给列表元素赋值
list1 = [val1, val2, val3]
通过for循环建立
list1 = [num for num in range()]
常用方法
操作符 | 描述 |
---|---|
list1.append() | 向list结尾添加 参数 |
list1.insert() | 插入一个元素 |
list1.extend() | 扩展列表 |
list.remove() | 删除 |
list.pop() | 删除指定位置的元素 |
del List | 删除整个列表 |
list.reverse() | 翻转列表 |
list.sort() | 列表排序 |
min() | 返回列表元素最小值 |
max() | 返回列表元素最大值 |
list() | 返回列表元素最小值 |
list.count() | 统计某个元素在列表中出现的次数 |
List.reverse()
List.sort() #sort有三个默认参数 cmp=None,key=None,reverse=False 因此可以制定排序参数
len(list):列表元素个数
min(list):返回列表元素最小值
max(list):返回列表元素最大值
list(seq):将元组转换为列表
list.count(obj):统计某个元素在列表中出现的次数
元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。创建时间和占用的空间上面都优于列表。
创建
直接给元素赋值
tuple = (val1, val2, val3)
生成器赋值
def my_fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
yield a
def main():
f = my_fib(20)
print(f)
for val in my_fib(20):
print([val])
常用方法
操作符 | 描述 |
---|---|
cmp(tuple1, tuple2) | 比较两个元组元素 |
len() | 计算元组元素个数 |
max(tuple) | 返回元组中元素最大值 |
min(tuple) | 删除 |
tuple(seq) | 将列表转换为元组 |
集合
比起列表,集合无法储存相同元素
常用方法
set1 = {3, 3, 2, 2, 1, 1}
set2 = {1, 2, 3, 4, 5, 6}
set3 = {1, 3, 5, 7, 9}
# 添加元素
set1.add(4)
# 排序
print(sorted(set1))
print(type(sorted(set1)))
# 交集
print(set1 & set2)
# print(set1.intersection(set2))
# 并集
print(set1 | set2)
# print(set1.union(set3))
# 差集 set1有set2没有
print(set1 ^ set2)
# print(set1.difference(set3))
# 对称差
print(set3 - set1)
# print(set1.symmetric_difference(set3))
print(*set2)
# set2.remove(4)
# 子集
print(set2 <= set1)
#print(set1.issubset(set2))
# 超集
print(set2 >= set1)
#print(set2.issuperset(set1))
字典
可以存入一条信息串,且可以通过字典的主键进行访问
创建
dict1 = {'name': 'GhostLinc', 'age': 22, 'gender': True}
常用方法
#增添元素
dict1 += {'tel':'1523239380'}
#修改,增添元素
dict1.update(height=185, fav=['吃', '喝'])
#删除元素
print(dict1.pop('age'))
print(dict1.popitem())
del dict1['name']
# 设置默认值
dict1.setdefault()
面向对象
类的定义
class Student(object):
# 属性 构造方法(构造器/构造子)
def __init__(self, name, age=0):
self.name = name
# 私有变量 (无意义)
# self.__age = age
self._age = age
# 方法
def study(self, course):
# Student()实际调用__init__方法
stu1 = Student('GhostLinc', 22)
def main():
# Student()实际调用__init__方法
stu1 = Student('GhostLinc', 22)