小编最近在学习Python入门的基础语法,为巩固知识,整理出基本要点,更好的学习理解
1.Python的编译器:建议下载最新版的anaconda和pycharm。
2.python的基本数据类型
数据类型 | 名称 |
number:int ,bool,float,complex | 数字类型 |
list,range,tuple | 序列类型 |
str | 文本序列类型 |
bytes,bytearray,memoryvie | 二进制序列类型 |
set,frozenset | 集合类型 |
dict | 映射类型 |
**第三模块可以填充数据类型(eg:numpy)
注:数字类型:1.int:整型,其长度没有限制(bool:布尔型,为整型的子类(True为真1和False为假0两种常量))
2.float:浮点型,Cpython的浮点数通常使用c中的double来实现
3.complex:复数型,有实部和虚部。如复数z的实部是z.real,虚部是z.imag
3.相互转换
函数 | 作用 |
int(x) | 将x转换成整数类型 |
float(x) | 将x转换成浮点数类型 |
complex(real, [,imag]) | 创建一个复数 |
str(x) | 将x转化为字符串 |
repr(x) | 将x转换为表达式字符串(字符表达式是由 字符串运算符 将字符型数据连接起来的式子,其中的字符型数据可以为字符型的 常量 、 变量 或运算结果为字符型的 函数 ) |
eval(str) | 计算在字符串中有效python表达式,并返回一个对象 |
chr(x) | 将整数x转化为一个字符 |
ord(x) | 将一个字符x转化为它对应的整数型 |
hex(x) | 将一个整数x转换为一个十六进制字符串 |
oct(x) | 将一个整数x转换为一个八进制字符串3.3. |
4.相关运算符
算术运算符 > 比较运算符 > 赋值运算符
1.赋值运算符:=,+=(加法赋值运算符),-=(减法赋值运算符),*=(乘法赋值运算符),/=(除法赋值运算符),**=(幂赋值运算符),%=(取模(余数)赋值运算符),//=(取整除赋值运算符
2.算术运算符
运算符 | 功能介绍 | 示例 |
+,-,*,/ | 分别完成两个对象加,减,乘,除 | >>>3+2输出5 |
% | 取模。返回除法的余数 | >>>7%2输出1 |
// | 取整除。向下取接近除数的整数 | >>>9//2输出4 >>>-9//2输出-5 |
** | 幂。返回x的y次幂 | >>>2**3输出8 |
**将任意两个数相除时,结果总是浮点数,即使这两个数都是整数且能整除。
**在其他任何运算中,如果一个数是整数,另一个数是浮点数,结果也是浮点数。
3.比较运算符
运算符 | 功能介绍 | 示例 |
== | 等于。比较对象是否相等 | (a==b)返回False |
!= | 不等于。比较两个对象是否不相等 | (a!=b)返回True |
> | 若大于,则返回1来表示真,与True等价。否则,返回0表示假,与False等价 | (a>b)返回True |
< | 若小于,则返回1表示真,与True等价。否则,返回0表示假,与False等价 | (a<b)返回True |
>= | 若大于或等于,则返回1来表示真,与True等价。否则,返回0表示假,与False等价 | (a>=b)返回False |
<= | 若小于或等于,则返回1来表示真,与True等价。否则,返回0表示假,与False等价 | (a<=b)返回False |
4.逻辑运算符
运算符 | 功能介绍 |
and | “与”运算符,一假为假,全真为真 |
or | “或”运算符,一真为真,全假为假 |
not | “非”运算符,为真则假,为假则真 |
5.注释
1.#单行注释
2.Ctrl+/可以对所选中的代码进行多行注释
6.输入输出
1.输入:变量=input(‘输入字符串’)
a=input('请输入名字')
a=input()spilt(' ')#可以在每个数字或字符串输入后空格加以分隔
2.输出:print()语句可以输出
7.if条件语句
1.if条件语句是最基本的逻辑判断程序流控制语句
2.语句的关键词是if...elif...else
格式为if C1:
程序代码1
elif C2:
程序代码2
else :
程序代码3
3.注:if条件后面用冒号”:“表示满足条件后要运行的语句块
if条件语句可以有0~n(任意)个elif,而不用else if
if条件语句结束可以有0~1个else语句
if语句可以嵌套,使用缩进空格数来区分嵌套语句块
4.eg:输入0~100任意成绩数据,通过if条件语句判断成绩的等级
num=int(input('请输入分数’))
if 0<=num<=60:#判断值是否在0~60
print("挂科")
elif 60<=num<=70:#判断值是否在60~70
print("及格")
elif 70<=num<80:
print("良好")
elif 80<=num<=100:
print("优秀")
else:
print("输入有误")
8.python循环语句
1.while循环语句
运行while循环语句,程序先判断循环条件,如果条件满足,则进入再循环
**注:1.while循环语句后面用冒号“:”表示满足条件后要运行的语句块
2.while循环语句可以嵌套,使用缩进空格数来区分嵌套语句块
3.while循环语句可以有else语句
while表达式:while 条件语句:
程序代码1
2.for... in... 循环语句
1.python中的for...in...语句是另一种循环语句,语句中必须有一个可迭代的对象才能循环。它会遍历序列中的每一个元素
2.**python的for语句是遍历任何可迭代的对象,如:list,set等,而不仅用来控制循环次数或循环条件。while和for循环语句可以包含else子句,即结束while或for循环后运行的语句
3.range函数:
range(起始值,终止值,步长)
步长 :每次循环序列增长值
4.**for循环代码示例
for 迭代对象 in序列:
代码块(一行语句或多行代码)
else:
代码块(一行语句或多行代码)
while 条件:
else:
代码块(一行语句或多行代码)
示例代码:
sites=["Youtub","Google","Baidu","Taobao"]
for site in sites:
if site=='sohu':
break;
print("get"+site)
else:
print('没有循环数据')
print('完成循环')
9.文本序列类型str
转义字符
转义字符 | 描述 |
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引 |
\a | 响铃 |
\b | 退格 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
字符串:单引号,双引号,三引号包括的文本序列
1.井号字符(#)只能单行注释
多行字符串(三重引号)可以多行注释
2.原始字符串是python中一类比较特殊的字符串,以大写字母R或者小写字母r开始。在原始字符串中,字符‘\'不再表示转义字符的含义
3.字符串常见函数
class str(obiect,encoding=‘utf-8’,errors=‘strict’)功能:返回object按照utf-8编码的字符串版本
str.count(sub[,start[,end]])功能:返回字符串sub在[start,end]范围内非重叠出现的次数
str.encode(encoding='utf-8',errors='strict')功能:把字符串按照格式编写,默认为‘utf-8'.errors默认为’strict‘。在网络传输时候防止不同平台下的文本编码不同导致乱码
str.startswith(prefix[,start[,end]])功能:如果字符串以指定的prefix开始则返回True,否则返回False,prefix可以为多个供查找的前缀组成的元组
str.endswith(prefix[,start[,end]])功能:如果字符串以指定的prefix开始则返回True,否则返回False,prefix可以为多个供查找的后缀组成的元组
str.find(sub[,start[,end]])功能:返回字符串sub在是s[start:end]切片内被找到的最小索引值’。可选参数start与end会被解,读为切片表示法
str.split(sep=None,maxsplit=-1)功能:返回一个字符串内单词组成的列表,使用sep表示分隔符
str.strip([chars])功能:返回原字符串的副本,移除其中的前导和末尾字符
str.replace(old,new[,count])功能:返回字符串的副本,其中出现的所有子字符串old都将被替换为new,如果给出了可选参数count,则只替换前count次出现
str.upper(),将字符串里的字母全部大写
str.lower(),将字符串里的字母全部小写
str.isspace()字符串中是否都是由空格、制表符和换行符组成,并且非空
str.istitle()字符串中是否以大写字母开头、后面都是小写字母的单词、数字或空格
str.join()返回一个用分隔符连接序列各个元素后的字符串(注:分隔符可以为空)','.join(str(m) for m in list[])
str.title()字符串内的所有单词的首字母大写
str.rjust右对齐字符串,左边填充上‘填充字符’,总字符长度为‘数字’
str.center字符串居中,两边填充上‘填充字符’,总字符长度为‘数字’
.strip() --- 删除两边空格
.lstrip() --- 删除左边空格
.rstrip() --- 删除右边空格
.replace(" ","") --- 删除所有空格
.split() --- 先切分,"".join() --- 再拼接
4.此时我们想要逆序输出world,即输出"dlrow"
只需要使用变量名[结束索引:开始索引-1:-1]
>>>a = "Hello , world!"
>>>print(a[11:6:-1])
dlrow
>>>print(a[11:6:-2])
drw
为什么是结束索引+1和开始索引-1?
python中所有的区间都是左闭右开的,所以右边的数取不到,要想取到右边的数只有将右边的数向右再延伸一个即加一。至于为何逆序就要减一,你可以把字符串反过来看,
!wolleh
6543210
10.列表
一.list是一个基于位置的有序对象集合,它是可变序列,也是python中最常用的数据结构之一。list是在方括号([])之间,用逗号分隔开的元素对象序列。
1.有序:列表中元素是有序的
2.可变:列表中的元素可变
3.异构:列表中的元素是对象
4.可重复:列表中可以有可以有重复的对象元素
5.可嵌套:列表支持嵌套(可包含子列表)
列表的创建
1.使用一对方括号来表示空列表:[]
2.使用方括号包括列表元素,元素之间用逗号隔开
3.使用列表推导式:[x for x in range(,)]
二.list相关函数
1.sort(*,key=None,reverse=False#倒序)#对列表原地排序(数字从小到大)
2.sort(*key=None,reverse=True#倒序)#对列表原地排序(数字从大到小)
3.增
a.append(i)把i所代表的元素都添加到列表a中去列表.
a.extend(序列): 在列表末尾追加一个序列
a.insert(索引,元素): 在列表对应的索引插入元素
4.删
1.del d[key]:将d[key]从d中移除
2.pop(key[,default]):如果列表中存在key则将其移除并返回其值
3.列表.remove(元素): 删除列表中对应元素的第一个匹配项。
4.clear():清空列表中的所有元素
5.修改元素
列表[索引]:新元素:将列表对应索引的元素,修改为新元素。
6.
len()函数
len()函数可以取得列表的长度
7.sum()函数
sum()函数可以将列表中所有数相加
8.enumerate()函数
在for循环中迭代,每次enumerate()函数将返回两个值:列表表项的索引和列表表项本身。
9.查:
列表.index(元素): 返回元素对应的索引
11.元组
.1.元组类似列表,是一个基于位置的有序对象集合,不同的是元组是不可变序列,一旦创建不可以被修改,元组是在圆括号之间,用逗号隔开的元素序列。元组的数据类型特点如下:
1.有序:元组中元素是有序的
2.不可变:元组中的元素不可变
3.异构:元组中的元素是对象
4.可重复:元组中可以有可以有重复的对象元素
5.可嵌套:元组支持嵌套(可包含子列表)
2.元组的创建
1.使用一对圆括号来表示空元组:()
2.使用一个后缀的逗号来表示单元组。如a,或(a,)
3.使用以逗号分隔的多个项:a,b,cor(a,b,c)
4.使用tuple()函数创建
3.元组的操作
index() 从元组中找出某个对象第一个匹配项的下标位置。
count() 统计某个元素在元组中出现的次数。
len() 计数元组元素的个数,并返回值。
max() 返回元组中元素的最大值。
min() 返回元组中元素的最小值。
12.字典
1.字典的创建:1.字典可以通过以逗号分隔的键值对列表包含大括号之内来创建。
2.字典常见的函数:
1.增
d[key]=value:将d[key]设为value,如果d中原先没有key,则将增加key:value键值对元素。如果d原先有key,则将其值修改为value
2.删
del d[key]:将d[key]从d中移除
pop(key[,default]):如果字典中存在key则将其移除并返回其值,否则返回default
popitem():按LIFO的顺序从字典中移除并返回一个键值对
clear():清空字典中的所有元素
3.修
setdefault(key[,default]):若存在键key,则返回对应的value。否则增加为key:defult键值对
update([other]):使用来自other的键值对更新字典,覆盖原有的键,如d.update(red=1,blue=2)
4.查
key in d:如果字典d中存在键为key的元素则返回True,否则为False
key not in d:如果字典d中不存在键为key的元素则返回True,否则为False
d[key]:返回字典d中以key为键的项
get(key[,default]):如果key存在于字典d中则返回key的值,否则返回default
5.值与值返回相关函数
keys():返回由字典键组成的一个新视图
list(d):返回字典d中使用的所有键的列表
values():返回由字典值组成的一个新视图
items():返回由字典项(键值对)组成的一个新视图
len(d):返回字典d中的元素个数
copy():返回原字典的浅复制
6.zip()函数:
zip()函数使用以上两个可迭代对象作为参数,它将两个或两个以上可迭代对象中对应元素打包成意义对应元组,然后返回由这些元组组成的一个zip对象,如果各个迭代器的元素个数不一致,则返回与最少元素的可迭代对象长度
zip([iterablel,iterable2,...])
*号操作符与zip相反,可以将元组解压为列表
l
13.集合
可以使用大括号 { } 或者 set() 函数创建集合,但创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
1.集合特点:
1.集合是一个无序的不重复元素序列
2.集合中的元素是唯一的
3.集合可以用来去重
2.集合操作
增
添加一个数据:
集合序列.add(数据)添加序列:
集合序列.update(序列数据)删
集合序列.remove(数据)
删除集合中指定的数据,如果数据不存在就报错集合序列.pop()
随机删除集合中的某个数据集合序列.discard(数据)
删除集1合中指定的数据,如果数据不存在不做任何操作
13.函数
函数是实现某一逻辑功能的代码段,这段代码的名字就是函数名,函数可以提高代码复用性和可读性
1.函数的定义
一个完整函数由函数名及参数列表,函数说明,函数代码,返回值4部分组成,格式:
def 函数名(参数列表):
参数说明
函数代码
return 返回值
注意:1.函数先定义后调用,如果先调用会报错。
2.函数没有被调用时,函数里面的执行语句不会被执行。
返回值
函数并非总是直接显示输出,有时也可以处理一些数据,再返回处理好的数据。函数返回的数据称为返回值。
注意:函数中可以同时包含多个 return 语句,但只会执行了一个return,return的功能是返回值并退出当前函数,return语句后面的语句都不执行。
变量的作用域
1.局部变量
在函数体内定义使用的变量称为局部变量.局部变量只存在于函数体局部,所有变量的作用域是它们被定义的块,从定义它们的名字的定义点开始,程序块运行结束后,自动释放局部变量所占内存
2.全局变量
函数中定义全局变量(即它不存在于任何局部函数或类的作用域中),需要在函数或类中将变量用全局语句修饰.注意,全局变量不能赋值
3.nonlocal变量nonlocal声明的变量在上级局部作用域内,而不是全局定义.
global | nonlocal |
声明变量的作用域为全局作用域 | 关键字用来在函数中使用外层(非全局)变量 |
lambda表达式
lambda是一种特定的表达式,也是一个匿名函数(即没有函数名称的函数),可以包含表达式和语句,lanmbda表达式的使用语法如下:
lambda[输入参数]:表达式或语句块
x=2
y=3
f=lambda:x,y:x*x+y*y
g=lambda:39
print(f(x,y))
print(g())
参数()
1.
位置或关键字参数(Positional-or-keyword parameter)
仅位置的参数(Positional-only parameter)
任意数量的位置参数(var-positional parameter)
任意数量的关键字参数(var-keyword parameter)
2.形参跟实参
基本定义
- 形参:形式参数,在定义函数时,函数名后面括号中的参数;
- 实参:实际参数,在调用函数时,函数名后面括号内的参数,也就是将函数的调用者提供给函数的参数成为实际参数。
两种情况
1.值传递
实际参数的值传递给形式参数,在相关代码段执行相关操作
实际参数为不变对象时,进行值传递
2.引用传递
将实际参数的引用传递给形式参数;
当实际参数为可变对象时,进行的是引用传递
可变对象和不可变对象
所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变。
所以,在python中哪些是可变数据类型,哪些是不可变数据类型就尤为关键。
可变数据类型:列表list和字典dict,set,自己定义的类对象,numpy中的ndarray对象,具体参考:NumPy:拷贝和视图。
不可变数据类型:整型int、浮点型float、字符串型string和元组tuple,以及frozenset。(注意:字典的key只能是不可变对象,即字典的key只能是整型int、浮点型float、字符串型string和元组tuple)。
def print_info(name,a,b)
print(name+'-'*30)
print('id(a)=',id(a)=',a,'\t id(b)=',id(b),'b=',b)
def demo(a,b)
a=a+20
b.append(99)
print_info('函数体内',a,b)
if__name__=='__main__':
a,*b=list(range(1,6))
print_info('初始状态',a,b)
demo(a,b)
print_info('结束状态',a,b)
最后
如果你觉得这篇文章对你有用,建议点赞收藏。
欢迎各位读者指正错误,请在评论区留言。或者发表自己的看法,小编不胜感激。