一.编程基础
1.标识符
就是变量、函数、属性、类、模块等可以由程序员指定名称的代码元素。
Python中标识符的命名规则如下:
1 区分大小写:Myname与myname是两个不同的标识符。
2 首字符可以是下画线(_)或字母,但不能是数字。
3 除首字符外的其他字符必须是下画线、字母和数字。例如#,$
4 关键字不能作为标识符。
5 不要使用Python的内置函数作为自己的标识符。
2.变量
语法:变量名 = 值
age = 19
name = '南栀北夏ii'
print('姓名:' + name)
3.模块
在Python中一个模块就是一个文件,模块是保存代码的最小单位,在模块中可以声明变量、函数、属性和类等Python代码元素
一个模块可以访问另一个模块的元素
import<模块名>:通过这种方式会导入m2模块的所有代码元素,,在访问时需要加前缀“m2.”
from<模块名>import<代码元素>:通过这种方式会导入m2中的x变量,在访问时不需要加前缀“m2.”
from<模块名>import<代码元素>as<代码元素别名>:与②类似,在当前m1模块的代码元(x变量)与要导入的m2模块的代码元素(x变量)名称有冲突时,可以给要导入的代码元素(m2中的x)一个别名x2
、
4.关键字
二.数字类型的数据
在Python中有6种主要的内置数据类型:数字、字符串、列表、元
组、集合和字典。列表、元组、集合和字典可以容纳多项数据,在本书
中把它们统称为容器类型的数据。
Python中的数字类型有4种:整数类型、浮点类型、复数类型和布
尔类型。需要注意的是,布尔类型也是数字类型,它事实上是整数类型
的一种。
1.整数类型
Python中的整数类型为int类
print('年龄:',20)#使用逗号分隔输出项,输出时自动补一空格
#年龄: 20
print('1024转换为二进制:' + bin(1024))
print('1024转化为八进制:' + oct(1024))
print('1024转化为十六进制:' + hex(1024))
3.浮点类型(float)
print('我的身高为:', 1.78)
#我的身高为:1.78
4.复数类型
5,布尔类型
只有True和False)
print('是否大于18岁:', True)
print('是否为男生:', False)
#是否大于18岁:True
#是否为男生:False
6.空值型(None):表示空值
print(print('Hello'))
#Hello
#None
7. 字符串型(str)
print('7899')#单引号字符串
print("6666")#双引号字符串
print('''你好,
世界!''')#三引号可以换行
print('你好,"python"')#字符串中含有双引号使用单引号来括
8.数字类型的相互转换
type()函数:用于查看数据类型
print(type(179))#<class 'int'>
print(type(17.8))
print(type('女'))
数据类型转换:
print(type(int(1,78)))#表示将float类型转化为int
print(type(float(178)))#表示将int类型转化为float
print('2055年是新中国成立' + str(2055-1949) + '周年')
#2055年是新中国成立106周年
三.运算符
1.算术运算符
2. 比较运算符
比较运算符用于比较两个表达式的大小,其结果是布尔类型的数据,即True或False。
3 逻辑运算符
4.位运算符
5.赋值运算符
6.运算符的优先级
从表格中优先级依次递减,同一行有相同的优先级
四.程序流程控制
1 分支语句
if结构
if结构的语法如下:
souce = int(input('请输入一个分数:'))
if souce >= 80:
print('你真优秀')
if-else结构
souce = int(input('请输入一个分数:'))
if souce >= 60:
if souce >= 85:
print('您真优秀')
else:
print('您的成绩还可以,继续加油')
else:
print('您的成绩需要您加倍努力')
if-elif-else结构
score = int(input("请输入一个成绩"))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'F'
print('Grade' + grade)
2. 循环语句
while语句
i = 0
while i * i < 10:
i += 1
print(str(i) + '*' + str(i) + '=',i * i)
else:
print('While Over!')
for语句
for item in 'hello':
print(item)
print('----------------------------')
nummber = [1,2,3,4]
for i in nummber:
print(i)
跳转语句
break语句用于强行退出循环体,不再执行循环体中剩余的语句。
continue语句用于结束本次循环,跳过循环体中尚未执行的语句,
接着进行终止条件的判断,以决定是否继续循环。
# range(10)表示从0-9
for item in range(10):
if item == 3:
break
print(item)
# range(10)表示从0-9
for item in range(10):
if item == 3:
continue
print(item)
五.容器类型的数据
1 序列
序列(sequence)是一种可迭代的、元素有序的容器类型的数据。
序列包括列表(list)、字符串(str)、元组(tuple)和字节序列
(bytes)等。
序列的索引操作
序列中的元素都是有序的,每一个元素都带有序号,这个序号叫作
索引。索引有正值索引和负值索引之分。
我们是通过下标运算符访问序列中的元素的,下标运算符是跟在容
器数据后的一对中括号([]),中括号带有参数,对于序列类型的数据
,这个参数就是元素的索引序号。
加和乘操作
加(+)和乘(*)运算符也可以用于序列中的元素操作。加(+)
运算符可以将两个序列连接起来,乘(*)运算符可以将两个序列重复
多次。
切片操作
切片运算符的语法形式为[start:end:step]。其中,start是开始索引
,end是结束索引,step是步长(切片时获取的元素的间隔,可以为正整
数,也可以为负整数)。
注意:切下的小切片包括start位置的元素,但不包括end位置的元素
,start和end都可以省略
下面对字符串变量a进行切片操作[1:3],开始索引为1,结束索引
为3,省略步长(默认值为1)
下面对字符串变量a进行切片操作[0:3:2],开始索引为0,结束索
引为3,步长为2。
成员测试
成员测试运算符有两个:in和not in,in用于测试是否包含某一个元
素,not in用于测试是否不包含某一个元素。
2 列表
列表(list)是一种可变序列类型,我们可以追加、插入、删除和
替换列表中的元素
创建列表
创建列表有两种方法。
1 list(iterable)函数:参数iterable是可迭代对象(字符串、列表、
元组、集合和字典等)。
2 [元素1,元素2,元素3,⋯]:指定具体的列表元素,元素之间以
逗号分隔,列表元素需要使用中括号括起来。
追加元素
列表是可变的序列对象,列表可以追加元素。
1 在列表中追加单个元素时,可以使用列表的append(x)方法。
2 在列表中追加多个元素时,可以使用加(+)运算符或列表的extend(t)方法。
插入元素
想向列表中插入元素时,可以使用列表的list.insert(i,x)方法,
其中,i指定索引位置,x是要插入的元素。
替换元素
想替换列表中的元素时,将列表下标索引元素放在赋值符号(=)
的左边,进行赋值即可
删除元素
想在列表中删除元素时,可使用列表的list.remove(x)方法,如果
找到匹配的元素x,则删除该元素,如果找到多个匹配的元素,则只删
除第一个匹配的元素。
3 元组
元组(tuple)是一种不可变序列类型
创建元组
创建元组时有两种方法
1 tuple(iterable)函数:参数iterable是可迭代对象(字符串、列表、元组、集合和字典等)。
2 (元素1,元素2,元素3,⋯):指定具体的元组元素,元素之间
以逗号分隔。对于元组元素,可以使用小括号括起来,也可以省略小括
号。
元组拆包
创建元组,并将多个数据放到元组中,这个过程被称为元组打包。
与元组打包相反的操作是拆包,就是将元组中的元素取出,分别赋
值给不同的变量。
4 集合
集合(set)是一种可迭代的、无序的、不能包含重复元素的容器类
型的数据。
创建集合
我们可以通过以下两种方式创建集合。
1 set(iterable)函数:参数iterable是可迭代对象(字符串、列表、
元组、集合和字典等)。
2 {元素1,元素2,元素3,⋯}:指定具体的集合元素,元素之间以
逗号分隔。对于集合元素,需要使用大括号括起来。
修改集合
修改集合类似于修改列表,可以向其中插入和删除元素。修改可变
集合有如右所示的常用方法。
add(elem):添加元素,如果元素已经存在,则不能添加,不会
抛出错误。
remove(elem):删除元素,如果元素不存在,则抛出错误。
clear():清除集合。
5 字典
字典(dict)是可迭代的、通过键(key)来访问元素的可变的容器
类型的数据。
字典由两部分视图构成:键视图和值视图。键视图不能包含重复的
元素,值视图能。在键视图中,键和值是成对出现的。
创建字典
我们可以通过以下两种方法创建字典。
1 dict()函数。
2 {key1:value1,key2:value2,...,key_n:value_n}:指定具体
的字典键值对,键值对之间以逗号分隔,最后用大括号括起来
修改字典
访问字典视图
items():返回字典的所有键值对视图。keys():返回字典键视图。values():返回字典值视图。
遍历字典
s_dict = {'张三':119,'李四':108,'王麻子':106}
print('---------遍历键-----------')
for i in s_dict.keys():
print('姓名:' + i)
print('------------遍历值---------')
for j in s_dict.values():
print('分数:' + str(j))
print('------------遍历键:值---------')
for i,j in s_dict.items():
# .format()方法中分别按顺序提供这两个值
print(i,j)
六.函数
1.定义函数
2 调用函数
使用关键字参数调用函数
在调用函数时可以采用“关键字=实参”的形式,其中,关键字的名称就是定义函数时形参的名称
3 参数的默认值
4 可变参数
# *number可变参数
def sum(*number):
total = 0.0
for i in number:
total += i
return total
print(sum(100.0,20.0,30.0)) #150.0
基于字典的可变参数(**可变参数)**可变参数在函数中被组装成一个字典。示例代码如下:
5 函数中变量的作用域
变量可以在模块中创建,作用域(变量的有效范围)是整个模块,被称为全局变量。变量也可以在函数中创建,在默认情况下作用域是整个函数,被称为局部变量。
6 函数类型
#加法函数
def add(a,b):
c = a + b
return c
# 减法函数
def sub(i,j):
m = i - j
return m
# 定义计算函数
def calc(op):
if op == '+':
return add
else:
return sub
f1 = calc("+")
f2 = calc('-')
print(f1(10,5)) #15
print(f2(7,3)) #4
7.过滤函数filter()
8.映射函数map()
七. 类与对象
1.定义类
继承了object类,object类是所有类的根类
2.创建对象
类相当于一个模板,依据这样的模板来创建对象,就是类的实例化,所以对象也被称为“实例”。
3.类的成员
4.实例变量
实例变量就是对象个体特有的“数据”,例如狗狗的名称和年龄等。
5.构造方法
类中的__init__()方法是一个非常特殊的方法,用来创建和初始化实例变量,这种方法就是“构造方法”。在定义__init__()方法时,它的第1个参数应该是self,之后的参数用来初始化实例变量。调用构造方法时不需要传入self参数。