黑马程序员技术交流社区

标题: 【西安校区】Python基础知识点梳理 [打印本页]

作者: 逆风TO    时间: 2020-2-12 17:15
标题: 【西安校区】Python基础知识点梳理
python基础知识点梳理
摘要:
本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾。python的详细语法介绍可以查看官方编程手册,也有一些在线网站对python语法进行了比较全面的介绍,比如菜鸟教程:
python3 教程|菜鸟教程
为了方便聚焦知识点,本文涉及的操作实例并不多,想学好一门语言关键还得自己多编码多实践。

python语言介绍
python是一门解释型语言,python的设计目标:

一门简单直观的语言并与主要竞争者一样强大
开源,以便任何人都可以为它做贡献
代码像纯英语那样容易理解
适用于短期开发的日常任务
设计哲学是:

优雅
明确
简单
python基础语法
标识符
第一个字符必须是字母表中字母或下划线 。
标识符的其他的部分由字母、数字和下划线组成。
标识符对大小写敏感。
注释
类型        语法
单行注释        以 # 开头,编程规范建议#后面跟一个空格
多行注释        用一对连续的三个引号,单引号或者双引号均可("""/’’’)
行与缩进
python与其他语言明显的区别是没有大括号,而是用缩进表示代码块。
另外,每行语句不需要以分号结束。
多行语句
如果语句很长,可以使用反斜杠(\)来实现多行语句
说明:在 [], {}, 或 () 中的多行语句不需要使用反斜杠

算术运算符
运算符        描述        实例
+        两个对象相加        10 + 9 = 19
-        两个对象相减        10 - 9 = 1
*        两个数相乘法,用于字符串时可以重复多次        10 * 9 = 90
/        x除以y        10 / 2 = 5
//        取整除        10 // 9 = 1
%        取余数        10 % 8 = 2
**        返回x的y次幂        10 ** 2= 100
判断语法
if else语句
if 和 else用于对条件进行判断并进行处理,语法如下:

if 要判断的条件:
        条件成立时要做的事情
        ...
else:
        条件不成立时要做的事情

逻辑运算符
对于同时判断多个条件的情况可以用逻辑运算符,有如下三种:

符号        说明        语法
and        与,两个都成立才返回True        条件1 and 条件2
or        或,两个只要有一个满足就返回True        条件1 or 条件2
not        非,对条件取反        not 条件
elif 语句
elif语句用于有多个条件进行判断的场景,语法如下:

if 条件1:
        条件1满足时执行的代码
elif 条件2:
        条件2满足时执行的代码
elif 条件3:
        条件3满足时执行的代码
else:
        以上都不满足时执行的代码

循环语法
循环的作用就是让指定的代码重复执行

while循环
while循环是python中常见的循环,用于让执行的代码按照指定次数重复执行,语法如下:

初始条件设置,通常是计数器
while 条件(判断计数器是否达到目标次数):
        条件满足时候执行的代码
        ...
        处理条件(计数器 + 1)

for循环
for循环可以方便地遍历列表,元组,字典等数据类型,比如遍历一个列表的代码片段如下:

nameList = ["zhangsan", "lisi", "wangwu"]
for name in nameList:
        print(name)

python中,for循环经常与range函数搭配使用,如下:

for i in range(1, 10):
        print(i)

python数据类型介绍
按照是否是数字可以按照如下表格分类:
数字类型        非数字类型
整型(int)/ 浮点型(float)/ 布尔型(bool)/ 复数型(complex)        字符串(str)/ 列表(list)/ 元组(tuple) / 字典(dict)
说明:使用type函数可以返回变量的数据类型

按照是否可变可以分为:

不可变类型        可变类型
整型(int)/ 浮点型(float)/ 布尔型(bool)/ 复数型(complex)/ 字符串(str)/ 元组(tuple)        列表(list)/ 字典(dict)
列表
列表(list)是python中使用最频繁的数据类型,类似其他语言的数组
列表的符号是中括号[],初始化一个列表语法如下:

program_list = ["c++", "java", "python", "php"]
1
列表中常见的几种操作如下:

序号        分类        方法        说明        实例
01        查询        list.index(obj)        从列表中找出某个值第一个匹配项的索引位置        program_list.index(“java”))
02        增加        list.insert(index, obj)        在列表中指定位置插入数据        program_list.insert(1, “kotlin”)
03        增加        list.append(obj)        在列表末尾追加数据        program_list.append(“C#”)
04        增加        list.extend(list1)        在列表1的数据追加到列表中        program_list.extend([“C#”, “kotlin”, “bash”])
05        增加        list.extend(list1)        在列表1的数据追加到列表中        program_list.extend([“C#”, “kotlin”, “bash”])
06        修改        list[index] = obj        修改指定索引的数据        program_list[2] = “Go”
07        删除        list.clear()        清空列表        program_list.clear()
08        删除        list.remove(obj)        删除第一个出现的指定数据        program_list.remove(“java”)
09        删除        list.pop()        删除末尾的数据        program_list.pop()
10        删除        list.pop(index)        删除指定索引的数据        program_list.pop(1)
11        统计        len(list)        计算列表长度        len(program_list)
12        统计        list.count(obj)        统计数据在列表中出现的次数        program_list.count(“java”)
13        排序        list.sort()        将列表升序排列        program_list.sort()
14        排序        list.sort(reverse=True)        将列表降序排列        program_list.sort(reverse = True)
15        翻转        list.reverse()        将列表翻转        program_list.reverse()
元组
元组(tuple)与列表类似,区别是元组的数据不能修改,元组的符号是小括号(),初始化一个元组的语法如下:

program_tuple = ("c++", "java", "python", "php")
1
元组主要用于函数的参数和返回值,格式化字符串,以及保护列表数据,由于元组的数据无法修改,因此提供的方法也比较少:

序号        分类        方法        说明        实例
01        查询        tuple.index(obj)        从元组中找出某个值第一个匹配项的索引位置        program_tuple.index(“java”)
02        统计        len(tuple)        计算元组长度        len(program_tuple)
03        统计        tuple.count(obj)        统计数据在列表中出现的次数        program_tuple.count(“python”)
元组在python中还可以用于交换两个变量的值:

a = 10
b = 9
a, b = (b, a)

字典
字典(dict)通常用于描述一个物体的相关信息,使用键值对存储数据,键必须唯一,由于要使用hash算法,只有不可变类型才能用作键,字典的符号是大括号{},初始化一个字典的语法如下:

human_dic = {"name": "zhangsan",
                        "age": 26,
                        "height": 1.75,
                        "weight": 66}
字典的常用操作函数如下:

序号        分类        方法        说明        实例
01        取值        dict[key]        从字典中取出键对应的值        human_dic[“name”]
02        取值        dict.get(key)        从字典中取出键对应的值        human_dic.get(“name”)
03        取值        dict.items()        以列表返回可遍历的(键, 值) 元组数组        list(human_dic.items())
04        取值        dict.keys()        以列表返回一个字典所有的键        list(human_dic.keys())
05        取值        dict.values()        以列表返回字典中的所有值        list(human_dic.values())
06        增加/修改        dict[key] = value        key存在则更新value,否则增加键值对        human_dic[“gender”] = “male”
07        删除        dict.pop(key)        pop函数返回key对应的value值,并删除键值对        human_dic.pop(“gender”)
08        删除        dict.popitem()        返回并删除字典中的最后一对键和值        human_dic.popitem()
09        合并        dict.update(dic2)        合并字典dic2中的数据,已存在的key跟新value的值        human_dic.update({“weight”: 64, “age”: 27})
10        复制        dict.copy()        返回字典的浅复制        new_dic = human_dic.copy()
11        清空        dict.clear()        清空字典        human_dic.clear()
字符串
字符串(str)的使用也非常广泛,可以使用引号('或")来创建字符串,初始化一个字符串的语法如下:

testStr = "Wasting time is robbing oneself"
1
python对于str提供了很多实用的方法,比较常用的有以下这些:

对字符串进行判断的方法:
序号        方法        说明
01        str.isalnum()        如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
02        str.isalpha()        如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
03        str.isdecimal()        如果 string 只包含数字则返回True,否则返回False
04        str.istitle()        如果 string 是标题化的(每个单词的首字母大写)则返回True
05        str.isupper()        如果 string 所有区分大小写的字符都是大写,则返回True
06        str.islower()        如果 string 所有区分大小写的字符都是小写,则返回True
07        str.isspace()        如果 string 中只包含空格,则返回 True,否则返回 False
对字符串进行修改(包括格式化,大小写转换):
序号        分类        方法        说明
01        格式化        str.format()        格式化字符串
02        格式化        str.strip()        去掉字符串左右两边的空白字符
03        格式化        str.lstrip()        去掉字符串左边的空白字符
04        格式化        str.rstrip()        去掉字符串右边的空白字符
05        文本对齐        str.ljust(width)        返回一个原字符串左对齐,并使用空格填充宽度至长度width的新字符串
06        文本对齐        str.rjust(width)        返回一个原字符串右对齐,并使用空格填充宽度至长度width的新字符串
07        文本对齐        str.center(width)        返回一个原字符居中对齐,并使用空格填充宽度至长度width的新字符串
08        大小写        str.title()        把字符串的每个单词首字母大写
09        大小写        str.lower()        把字符串的所有大写字符转换成小写
10        大小写        str.upper()        把字符串的所有小写字符转换成大写
11        大小写        str.swapcase()        翻转字符串的大小写
字符串的查找和替换:
序号        方法        说明
01        str.count(str1, beg=0, end=len(string))        返回 str1 在字符串中出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
02        str.startswith(obj, beg=0,end=len(string))        检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
03        str.endswith(obj, beg=0, end=len(string))        检查字符串是否以 obj 结束,是则返回 True,否则返回 False。如果beg 或者 end 指定值,则在指定范围内检查
04        str.find(str1, beg=0, end=len(string))        检测 str1是否包含在字符串中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内。如果是则返回开始的索引值,否则返回-1
05        str.rfind(str1, beg=0,end=len(string) )        类似于find函数,不过是从右边开始查找
06        str.index(str1, beg=0, end=len(string))        跟find()方法一样,只不过如果str1不在 字符串中会报一个异常.
07        str.rindex(str1, beg=0, end=len(string))        类似于index函数,不过是从右边开始
08        str.replace(str1, str2, num=string.count(str1))        把 字符串中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
字符串的拆分和连接:
序号        方法        说明
01        str.split(str1="", num=str.count(str1))        以 str1 为分隔符切片字符串,如果 num 有指定值,则仅分隔 num+1 个子字符串
02        str.splitlines([keepends])        按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
03        str.join(seq)        以 字符串作为分隔符,将 列表seq 中所有的元素(用字符串表示)合并为一个新的字符串
公共方法
内置函数
对于列表,元组,字典,字符串,python也提供了一些公共方法,如下:

函数        描述        说明
len(item)        计算元素的总个数       
del(item)        删除变量        可以删除整个变量,加上索引可以只删除指定的元素
max(item)        返回元素的最大值        字典只针对key比较
min(item)        返回元素的最小值        字典只针对key比较
运算符
高级数据类型同样支持以下常见的运算符:

序号        运算符        描述        支持的数据类型
01        +        合并        列表,元组,字符串
02        *        重复        列表,元组,字符串
03        in        元素是否存在        列表,元组,字典,字符串
04        not in        元素是否不存在        列表,元组,字典,字符串
05        > < >= <= ==        比较        列表,元组,字符串
切片
切片使用索引值可以方便地截取容器中一定范围的数据,适用于列表,元组,字符串。
切片语法如下:
item[N:M:S]
其中N表示要截取的开始位置,M表示结束位置,S表示step也就是步长,默认是1,截取的时候[N:M]是个半闭合区间,等效于数学上[N,M)取值范围,取N不取M, N和M都可以省略。python中,-1可以表示最后一个元素,字符串利用切片完成翻转的代码如下:

>>> test_str = "Hello World"
>>> print(test_str[::-1])

python函数语法
在python中定义一个函数需要使用def关键字,相比其他语言,返回值不需要声明,定义一个函数的语法如下:

def print_hello():
        print("Hello, World!")

缺省参数
除了常见的必须参数外,python支持缺省参数,即为参数指定一个默认值,可以不传入这个参数,代码例子如下:

def print_human(name, age = 23):
        print("body info: name is %s, age is %s" % (name, age) )
       
print_human("wangwu")
print_human("lisi", 25)
print_human("zhangsan", age = 36)

多值参数
如果函数处理的参数的个数不确定,就可以用多值参数:

参数名前面增加一个*可以接收元组
参数名前面增加两个*可以接收字典
使用了这两个多值参数的代码例子如下:

def print_info(*args, **kwargs):
        print(args)
        print(kwargs)
       
program_list = ["c++", "java", "python", "php"]
human_dic = {"name": "zhangsan", "age": 26, "height": 1.75, "weight": 66}
       
print_info(*program_list, **human_dic)

返回多个值
python中可以利用元组返回多个值,多个返回值的代码如下:

def measure_rect():
        width = 12
        height = 6
        return width, height

w, h = measure_rect()
print("width is %d, height is %d" % (w, h))

python常用函数
print输出函数
python使用print函数将信息输出到控制台,输出数据时经常会用到格式化操作符,不同的格式化字符串含义如下表:

格式化字符        含义
%s        字符串
%d        有符号十进制整数(%07d 表示显示7位整数,不足就用0补全)
%f        浮点数(%.02f 表示小数点后显示两位)
%%        输出%
语法格式如下:

print("格式化字符串" % 变量1)
print("格式化字符串" % (变量1, 变量2...))
1
2
print函数默认会自动在内容末尾增加换行,如果不希望换行,可以用end参数指定需要输出的内容
语法格式如下:

print("Hello word!", end="")
1
input输入函数
使用input函数从键盘等待用户的输入,默认都是一个字符串
语法格式如下:

字符串变量 = input("提示信息:")
1
类型转换函数
常见的类型转换函数如下:

函数        说明
int(x)        将x转换为一个整数
float(x)        将x转换为一个浮点数
str(list)        将列表转换为字符串
tuple(list)        将列表转换为元组
list(tuple)        将元组转换为列表







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2