程序错误
1.函数名打错
2.print写到一行上(会出现语法错误(invalid syntax)提示)
解释器使用 ^ 来指示解释代码时发生错误的点
3. 代码缩进存在问题,会提示:unexpected indent(不期望的缩进)
4. python2默认不支持中文,python3支持
运算符
/ :除法(保留小数)
// :取整除法
% :取余数
** :乘方
数据类型
<font color=red>python中,在变量赋值的时候,不需要指明数据类型,解释器会根据数据的值推导出其类型</font>
python中真用True,假用False
格式化输出
%s: 输出字符串
%d:有符号十进制整数,e.g:%6d 表示输出六位整数
%f : 浮点型
%%: 输出%符号(转义字符)
%.5f : 表示输出一个小数点后面为5位的浮点型数
%6d : 表示输出一个长度为6位的整数,如果不够在前面补零
随机数工具包random
randint()函数:在指定范围内的整数中随机选择一个数字。
e.g: randint(1,5); # 在1~5之间随机选择一个整数输出。
休眠函数time.sleep()&系统时间记录函数datetime.datetime.now():
import time;
time.sleep(5);
#系统休眠5秒再进行程序处理
while循环:
几种赋值运算符:
a+=b 相当于a=a+b
加减乘除的符号类似
break和continue
break : 终止整个循环(使用在循环内部)
continue:终止本次循环,使用该关键字之前,需要确认计数i需不需要修改,不然可能会造成死循环
print("",end="—")
print("")
输出的结果是*—*,即使用end可使print()函数不换行
转义字符
\ 后面的符号原样输出,不进行转义
\t 使文本方向在垂直方向上对齐
\n 换行符号
\r 回车
函数:
函数需要先定义后使用
定义函数:
def aaa():
。。。。
。。。。
调用函数时直接使用aaa()即可
给函数注释的方式:在函数名的下面打一个tab之后使用多行注释方法进行注释
e.g:def aaa():
“”“是个aaa函数”""
函数的参数
按照函数定义时的顺序一次进行传参,参数之间使用逗号隔开
形参和实参
函数定义时使用的数据叫做形参,用来告诉外界能够传递的参数数量,并且可以使用该变量进行函数内部的计算。
函数调用的时候使用的数据叫做实参
函数的返回值
即返回的函数的执行结果,
e.g:求和函数中的结果为sum,则函数最后使用return sum进行结算结果的返回;
则在调用函数的时候 a = sumto();此时a获取的就是sumto()函数的计算结果,
pycharm中默认认为return是一个函数的最后一行代码,即后面的代码不属于上面的函数
几种数据类型
列表 list = [“a”,“nb”] ,通常保存相同类型的数据
元素的索引从0开始
常用操作:
对于列表: list[]
1. 取值和去索引:list[2] #list中第三个元素 list.index["lisi"] #输出元素"lisi"对应的位置(索引)
2. 修改list[2] = "zhangsan" 将第二个元素修改为“zhangsan”
3. 增加数据
4. 删除数据: 使用python提供的列表方法list.pop[] 或者list.remove[] 来进行列表元素的删除。
del list[2] #表示将list[]中的第二个元素从内存中删除,后续的代码就不能再使用了。
5. 求列表list的长度:len(list)
6. 对列表中的元素进行排序:list.sort(),默认为升序排列,降序排列:list.sort(reverse=True)
7. 对列表中的元素进行翻转:list.reverse()
pycharm中选中一个方法,使用Ctrl+Q可查看方法的详细解释。
函数名必须记,方法不用记住名称,方法都是针对调用该方法的变量
for循环
对于for …else …,只有当for循环全部执行完之后,else中的代码才会被执行。
元组 tuple =(“2”,“AI”) ,通常保存不同类型的数据
元组中的元素不能修改,而列表中的元素可以修改
统计元组中包含的元素个数: tuple.count(“AI”) # 统计"AI"在元组中出现的次数
元组和列表之间的转化
列表转化为元组:tuple(列表)
元组转换为列表:list(元组)
字典
dictionary = {"key1":"value1",
"key2":"value2" }
定义键值对的时候尽量一个键值对独占一行,方便阅读
字典是无序的对象集合
字典中的键(key)值(value)对,键(key)必须是唯一的,且数据类型只能是不可变类型。
字典的增删改:增&改:dictionary[“key”] = new value
删:dictionary.pop(“key”)
字典的常用操作:
1. 统计键值对数量:len(dictionary)
2. 合并字典:dictionary1.update(dictionary2)
3. 清空字典:dictionary.clear()
4. 利用for循环遍历字典:for a in dict: (其中变量a代表的是键值对中的key)
字符串
单引号和双引号:在字符串中还有子串,可以使用单引号来定义字符串,内部的子串使用双引号
e.g: str1 = 'hell0ff"f"ff'
统计字符串中子串出现的次数可以使用count方法:str.count()
查找子串的位置可以使用index方法:str.index("子串") &str.find(""子串) (index在查找时子串不存在则会报错,而find方法只会返回-1)
str.replace("old str","new str") 子串替换,返回新的字符串,并不修改原来的字符串
字符串的文本对齐: 左对齐:str.ljust(width) 右对齐:str.rjust(width) 居中对齐: str.center(width,string),其中string为填充字符
删除首尾的空白字符:str.strip() , 其中空白字符包括:\r , \n , \t 和空格
拆分字符串:string.split(str) 按照空白字符(\r , \n , \t 和空格)对字符串进行拆分
字符串的切片: string[开始索引:结束索引:步长]
公共方法
![python内置函数]()
extend方法是将元素一个一个插入列表中
append是将插入列表作为一个元素插入列表中
在终端中不使用解释器也可运行程序
debang:#!
在python程序的开头加上:#!/path/to/python2/or/python3 即可
变量的引用
变量记录数据的地址的这个动作叫做引用
hash()函数
hash(“string”)的结果返回的是一个转换后的一串数字码
局部变量和全局变量
局部变量:一个函数内部使用的变量,函数执行结束后,局部变量会被系统回收。
全局变量:函数外部定义的变量,所有函数都可以使用这个变量
通过全局变量的引用获取对应的数据,在函数内部不允许直接修改全局变量的值。若想在函数内部修改全局变量,需要使用关键字global进行变量的声明
函数的参数可看作对函数的输入,函数的返回值可看作是函数的对外输出
python中两个变量进行值的交换: a,b = b,a
如果传递给函数的参数是可变类型,在函数内部修改数据内容会影响到外部数据
如果递给函数的参数是不可变类型,在函数内部修改数据内容不会影响到外部数据
默认值
在定义函数时,在括号中直接对变量进行赋值,此时形参获得的值便是初始值,对于有默认值的参数应该放在参数列表的末尾
在对有多个具有缺省值的变量进行传递数据时,需要指定变量名
多值参数
参数名前加一个"*",则该参数可以接收元组 即def fuction(*a): ......
参数名前加两个"*",则该参数可以接收字典def fuction(**a):......
递归
递归函数必须要有出口