《黑马》python笔记~二

  • 前言
    • 一、配套视频
    • 二、python基础初级
    • 三、python基础中级
    • 四、python基础高级
  • 目录
    • python基础中级(列表、元组、字典、字符串)
      • 01、列表
      • 02、列表排序
      • 03、列表for遍历
      • 04、元组
      • 05、元组的遍历
      • 06、列表与元组的互换
      • 07、字典
      • 08、字典的基本使用
      • 09、字典的其他操作
      • 10、字典的for遍历
      • 11、字典放入列表
      • 12、字符串
      • 13、字符串的常用操作
      • 14、字符串文本对齐
      • 15、字符串的拆分和连接
      • 16、字符串切片
      • 17、公共方法
      • 18、for循环
      • 19、遍历字列表中的字典
      • 20、变量
      • 21、字典所存储的数据类型
      • 22、局部变量
      • 23、全局变量global
      • 24、函数的返回值
      • 25、交换2个变量的值
      • 26、函数内通过方法修改全局变量
      • 27、缺省参数
      • 28、多值参数装包
      • 29、多值参数求和
      • 30、多值函数拆包
      • 31、递归

前言

一、配套视频

https://www.bilibili.com/video/BV1ex411x7Em?from=search&seid=13312287313219257984

二、python基础初级

https://blog.csdn.net/weixin_51585624/article/details/116195258

三、python基础中级

四、python基础高级

https://blog.csdn.net/weixin_51585624/article/details/116204361
为方便大家学习,在此发布python基础入门部分配套讲义,原作者为黑马程序员, 前100节为Linux基础,所以我从100集开始记录,持续更新…

目录

python基础中级(列表、元组、字典、字符串)

01、列表

# list 在c++中被称为数组
name_list = ["张三", "李四", "王五", "李四"]
print(name_list)
# len 统计列表中元素的总数  函数
long = len(name_list)
print("列表中包含%d个元素" % long)# count 统计出现的次数  方法
counts = name_list.count("李四")
print("李四出现%d次" % counts)# 取值
print(name_list[0])
# 取索引
print(name_list.index("李四"))
# 修改
name_list[2] = "wangwu"
print(name_list, "\n\n")# 增加
name_list.append("王小二")  # 向列表的末尾追加数据
print(name_list)
name_list.insert(1, "小美美")  # 在索引为1的位置增加
print(name_list)
temp_list = ["孙悟空", "猪二哥", "沙师弟"]
name_list.extend(temp_list)  # 向列表的末尾追加列表数据
print(name_list, "\n")# 删除
name_list.remove("李四")  # 删除指定的数据 只删除了第一个李四
print(name_list)
name_list.pop(0)  # 指定要删除的索引
print(name_list)
del name_list[0]  # 指定要删除的索引(从内存中删除)
print(name_list)
name_list.clear()  # 删除列表所有数据
print(name_list)
控制台结果['张三', '李四', '王五', '李四']
列表中包含4个元素
李四出现2次
张三
1
['张三', '李四', 'wangwu', '李四'] ['张三', '李四', 'wangwu', '李四', '王小二']
['张三', '小美美', '李四', 'wangwu', '李四', '王小二']
['张三', '小美美', '李四', 'wangwu', '李四', '王小二', '孙悟空', '猪二哥', '沙师弟'] ['张三', '小美美', 'wangwu', '李四', '王小二', '孙悟空', '猪二哥', '沙师弟']
['小美美', 'wangwu', '李四', '王小二', '孙悟空', '猪二哥', '沙师弟']
['wangwu', '李四', '王小二', '孙悟空', '猪二哥', '沙师弟']
[]Process finished with exit code 0

02、列表排序

name_list = ["张三", "李四", "王五", "李四"]
num_list = [12, 34, 2, 43, 10, 3]# 逆序
name_list.reverse()
num_list.reverse()
print(name_list)
print(num_list, "\n")# 升序
name_list.sort()
num_list.sort()
# 降序
name_list.sort(reverse=True)
num_list.sort(reverse=True)print(name_list)
print(num_list)
控制台结果['李四', '王五', '李四', '张三']
[3, 10, 43, 2, 34, 12] ['王五', '李四', '李四', '张三']
[43, 34, 12, 10, 3, 2]Process finished with exit code 0

03、列表for遍历

name_list = ["张三", "李四", "王五", "王小二"]for my_name in name_list:print("我的名字叫%s" % my_name)
控制台结果我的名字叫张三
我的名字叫李四
我的名字叫王五
我的名字叫王小二Process finished with exit code 0

04、元组

# 元组与列表相似,不同之处在于元组的元素不能修改,元组可以保存不同类型的数据
infor = (120, "张三", 1.323)
# 当只包含一个元素的元组,需要添加逗号
infors = (120,)
print(type(infor))# 元组只有两个方法
# count  index# 取值
print(infor[0])
# 取索引
print(infor.index("张三"))
# 统计
print(infor.count("张三")) # 统计出现的次数
控制台结果<class 'tuple'>
120
1
1Process finished with exit code 0

05、元组的遍历

infor = ("张三", 18, 1.78)
for my in infor:print(my)# 格式化字符串后面的()本质上就是元组
print("%s的年龄是%d身高是%f" % infor)
控制台结果张三
18
1.78
张三的年龄是18身高是1.780000Process finished with exit code 0

06、列表与元组的互换

# 列表转元组
num_list = [1, 234, 4545, 65, 2]
num_tuple = tuple(num_list)
print(type(num_tuple))
print(num_tuple)
# 元组转换列表
num_lists = list(num_tuple)
print(type(num_lists))
print(num_lists)
控制台结果<class 'tuple'>
(1, 234, 4545, 65, 2)
<class 'list'>
[1, 234, 4545, 65, 2]Process finished with exit code 0

07、字典

# 列表 是存储 有序的对象集合
# 字典 是存储 无序的对象集合xiaoming = {"name": "小明","age": "18","gender": "True","height": "1.75","weight": "75.5"}
print(xiaoming)
控制台结果{'name': '小明', 'age': '18', 'gender': 'True', 'height': '1.75', 'weight': '75.5'}Process finished with exit code 0

08、字典的基本使用

xiaoming_dict = {"name": "小明"}
# 取值
print(xiaoming_dict["name"])
# 增加/修改
xiaoming_dict["age"] = 18
xiaoming_dict["name"] = "小小明"
print(xiaoming_dict)# 删除
xiaoming_dict.pop("age")print(xiaoming_dict)
控制台结果小明
{'name': '小小明', 'age': 18}
{'name': '小小明'}Process finished with exit code 0

09、字典的其他操作

xiaoming_dict = {"name": "小明","age": 18}
# 统计键值对数量
print(len(xiaoming_dict))
# 合并字典
temp_dict = {"height": 1.75,"age": 20}
# 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
xiaoming_dict.update(temp_dict)
print(xiaoming_dict)
# 清空字典
xiaoming_dict.clear()
print(xiaoming_dict)
控制台结果2
{'name': '小明', 'age': 20, 'height': 1.75}
{}Process finished with exit code 0

10、字典的for遍历

xiaoming_dict = {"name": "小明","qq": "2323234","phone": "10086"}
# 遍历字典
# 变量K是每一次循环中,获取到的键值对的KEY
for k in xiaoming_dict:print("%s-%s" % (k, xiaoming_dict[k]))
控制台结果name-小明
qq-2323234
phone-10086Process finished with exit code 0

11、字典放入列表

car_list = [{"name": "张三"},{"qq", "21323"},{"phone": "32323231211"},{"name":"李四","qq":"123234"}
]for card in car_list:print(card)
控制台结果{'name': '张三'}
{'21323', 'qq'}
{'phone': '32323231211'}
{'name': '李四', 'qq': '123234'}Process finished with exit code 0

12、字符串

str1 = "我的外号是'大西瓜'"
str2 = '我的外号是"大西瓜"'
print(str1)
print(str2)
print(str1[3])  # 取值for char in str2:print(char)
控制台结果我的外号是'大西瓜'
我的外号是"大西瓜"
号
我
的
外
号
是
"
大
西
瓜
"Process finished with exit code 0

13、字符串的常用操作

hello_str = "  hello hello"
print(len(hello_str))  # 统计字符串长度
print(hello_str.count("l"))  # 统计出现次数# 某字符串出现的位置
print(hello_str.index("e"))  # 也可以用hello_str.find# 替换,不会修改原有字符串内容
a = hello_str.replace("hello", "python")
print(a)
print(hello_str)# 使用strip方法去除字符串中的左右两边的空白字符
print(hello_str.strip())
控制台结果13
4
3python pythonhello hello
hello helloProcess finished with exit code 0

14、字符串文本对齐

poem=["灯鹳雀楼","王之涣","白日依山尽","黄河入海流","欲穷千里目","更上一层楼"]
print(poem)for poem_str in poem:print(poem_str.center(20))  # 文本中心对齐,靠左边20
控制台结果['灯鹳雀楼', '王之涣', '白日依山尽', '黄河入海流', '欲穷千里目', '更上一层楼']灯鹳雀楼        王之涣         白日依山尽        黄河入海流        欲穷千里目        更上一层楼 Process finished with exit code 0

15、字符串的拆分和连接

poem_str = "登鹳雀楼\t王之涣\t白日依山尽\t\n黄河入海流 \t\t欲穷千里目\n更上一层楼"
print(poem_str)
# 拆分字符串,获得字符串列表
poem_list = poem_str.split()
print(poem_list)# 合并字符串,用空格与列表各元素拼接
result = " ".join(poem_list)
print(result)
控制台结果登鹳雀楼    王之涣 白日依山尽
黄河入海流       欲穷千里目
更上一层楼
['登鹳雀楼', '王之涣', '白日依山尽', '黄河入海流', '欲穷千里目', '更上一层楼']
登鹳雀楼 王之涣 白日依山尽 黄河入海流 欲穷千里目 更上一层楼Process finished with exit code 0

16、字符串切片

num_str = "0123456789"
print(num_str[2:5])
print(num_str[2:])
print(num_str[:-2])
print(num_str[:])
print(num_str[::2])  # 步长为2
# 字符串的逆序
print(num_str[::-1])
控制台结果234
23456789
01234567
0123456789
02468
9876543210Process finished with exit code 0

17、公共方法

# 公共方法 列表 元组 字典 字符串  的公共方法
"""""
len() 获取长度
del() 删除索引所对的数据
max()  如果是字典比较,比较的是KEY的大小
min()"""""print("a" in "abc")  # 字符串
print(1 in [1, 2, 3])  # 列表
print("a" in {"a": "laowang"})  # 字典,只能判断字典的Key
控制台结果True
True
TrueProcess finished with exit code 0

18、for循环

""""for 变量 in 集合:循环体代码elsefor全部循环结束后,就会执行else代码,除非for循环中使用了break中途退出了循环,则不执行else"""
for num in [1, 2, 3]:print(num)if num == 2:breakelse:print("会执行吗?")
print("循环结束")
控制台结果1
2
循环结束Process finished with exit code 0

19、遍历字列表中的字典

students = [{"name": "阿土"},{"name": "小美"},{"name": "小王"}
]
find_name = "小土"
for stu_dict in students:print(stu_dict)if stu_dict["name"] == find_name:print("找到了 %s" % find_name)break
else:print("抱歉未找到 %s" % find_name)
print("循环结束")
控制台结果{'name': '阿土'}
{'name': '小美'}
{'name': '小王'}
抱歉未找到 小土
循环结束Process finished with exit code 0

20、变量

a = 1
b = a
print(id(a))  # 打印内存地址
print(id(b))
a = 2
print(id(a))# 可变类型数据 列表、字典
# 可变类型的数据变化,是通过方法来实现的
# 如果给一个可变类型的变量,赋值了一个新的数据,引用会修改
# a相当于贴纸,一开始贴在(指针指向)1处,后面贴在(指针指向)了2处
控制台结果140731019927952
140731019927952
140731019927984Process finished with exit code 0

21、字典所存储的数据类型

d = {}
d["name"] = "小明"  # 存放字符串(不可变数据)
print(d)
d[1] = "整数"  # 存放整数(不可变数据)
print(d)
d[(1,)] = "元组"  # 存放元组(不可变数据)
print(d)# 字典中 不可以放列表、字典(可变类型数据)
# 列表中可以放字典,字典可放元组与字符串
# 键值对的KEY必须是不可变类型数据
# 键值对的value可以是任意类型的数据
控制台结果{'name': '小明'}
{'name': '小明', 1: '整数'}
{'name': '小明', 1: '整数', (1,): '元组'}Process finished with exit code 0

22、局部变量

def demo(a):  # 单独传整数1,a贴纸未动,一直贴在(指向)整数1处a = a + 1  # 局部变量print(a)  # a指向整数2print(id(a))return a  # 返回a的地址给b,a和b都指向了整数2a = 1  # 全局变量
b = demo(a)  # 传值不传址 ,a依旧(贴在)指向整数1
print(b)
print(id(b))print(a)
print(id(a))
控制台结果2
140734139965872
2
140734139965872
1
140734139965840Process finished with exit code 0

23、全局变量global

def demo(c):global a  # 传址 告诉解释器后面的变量是一个全局变量,把a贴纸(指针指向)拿了过来a = c + 1  # a贴纸 指向了整数2print(a)print(id(a))return a  # 返回a的地址给ba = 1  # 全局变量
b = demo(a)  # 传值不传址
print(b)
print(id(b))print(a)
print(id(a))
控制台结果2
140734139965872
2
140734139965872
2
140734139965872Process finished with exit code 0

24、函数的返回值

'''
无参无返
无参有返
有参有返
有参无返
'''
def measure():   # 无参有返print("测量开始。。。")temp = 39wetness = 50print("测量结束。。。")return (temp, wetness)  # 返回元组,小括号可以省略result = measure()
print(result)
# 如果函数返回的类型是元组,同时希望单独的处理元组中的元素
# 可以使用多个变量,一次性接收函数的返回结果,变量的个数因该和元组中元素的个数保持一致
gl_temp, gl_wetness = measure()
print(gl_temp)
print(gl_wetness)
控制台结果测量开始。。。
测量结束。。。
(39, 50)
测量开始。。。
测量结束。。。
39
50Process finished with exit code 0

25、交换2个变量的值

a = 6
b = 100a, b = b, a  # Python专有的 元组元素互换 等号右边是一个元组,左边是接受的变量个数
print(a)
print(b)
控制台结果100
6Process finished with exit code 0

26、函数内通过方法修改全局变量

def demo(num_list):print("函数内部的代码")# 使用方法修改列表指针的指向,原本num_list指向[1, 2, 3],通过append方法后,改变了指向,指向了[1, 2, 3,9]num_list.append(9)  # 方法(列表、字典)指定地址(传址),  列表的+=也属于方法因为其本质是内部调用extend方法num_list += [10, 11]  # 通过+=方法后,改变了指向,指向了[1, 2, 3,9,10,11]print(num_list)print(id(num_list))print("函数执行完成")gl_list = [1, 2, 3]
demo(gl_list)print(gl_list)
print(id(gl_list))# 本次程序运行中,[1, 2, 3]的所占内存一直未被释放,直到整个代码运行完才自动释放
控制台结果函数内部的代码
[1, 2, 3, 9, 10, 11]
1986400113096
函数执行完成
[1, 2, 3, 9, 10, 11]
1986400113096Process finished with exit code 0

27、缺省参数

gl_list = [6, 3, 9]
gl_list.sort(reverse=True)  # 默认是升序排序,Ture是降序排序
print(gl_list)# 缺省参数,需要使用 最常用的值 作为默认值
# 如果一个参数的值不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递
def print_info(name, gender=True):  # 默认gender传了一个Ture过来""":param name:  班上同学的姓名:param gender: Ture 男生    False 女生"""gender_text = "男生"if not gender:  # not取反  假如gender没有传值进来,取反,则为真,执行if语句gender_text = "女生"print("%s是%s" % (name, gender_text))print_info("小明")
print_info("小王")
print_info("小美", False)  # 传入假
控制台结果[9, 6, 3]
小明是男生
小王是男生
小美是女生Process finished with exit code 0

28、多值参数装包

# 函数中参数传递的个数 有时候是不固定的
# 把离散数据装进元组或字典中
"""
*args-----存放元组参数,前面有一个*
**kwarges----存放字典参数,前面有两个*"""def demo(num, *nums, **person):print(num)print(nums)print(person)demo(1)
print("*" * 50)
demo(1, 2, 3, 4, 5, name="小明", age=18, weight=180)
控制台结果1
()
{}
**************************************************
1
(2, 3, 4, 5)
{'name': '小明', 'age': 18, 'weight': 180}Process finished with exit code 0

29、多值参数求和

def sun_numbers(*args):num = 0print(args)for n in args:num += nreturn numresult = sun_numbers(1, 2, 3, 4, 5)
print(result)
控制台结果(1, 2, 3, 4, 5)
15Process finished with exit code 0

30、多值函数拆包

def demo(*args, **kwargs):print(args)print(*args)  # 拆开元组获得元素print(kwargs)print(*kwargs)  # 拆开字典,获得key# 元组变量/字典变量
gl_nums = (1, 2, 3)
gl_dict = {"name": "小明", "age": 18}demo(*gl_nums, **gl_dict)  # 传递元组、字典
# 等同于:
# demo(12, 3, name="小明", age=18)
控制台结果(1, 2, 3)
1 2 3
{'name': '小明', 'age': 18}
name ageProcess finished with exit code 0

31、递归

#  函数内部,自己调用自己,但要添加参数判断,准备递归的出口,不然会死循环def sum_number(num):print(num)if num == 1:returnsum_number(num - 1)  # 调用自己sum_number(3)
控制台结果3
2
1Process finished with exit code 0

python基础笔记(二)相关推荐

  1. python基础笔记二_面向对象

    面向对象 Object Oriented 概述 面向过程 1.分析出解决问题的步骤,然后逐步实现.例如:婚礼筹办-- 发请柬(选照片.措词.制作)-- 宴席(场地.找厨师.准备桌椅餐具.计划菜品.购买 ...

  2. Python基础笔记(二) List、tuple、循环语句

    一.List Python内置的一种数据类型是列表:list. list是一种有序的集合,可以随时添加和删除其中的元素.list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的.构造 ...

  3. Python基础(二)完结

    今天分享又来了呀.ღ( ´・ᴗ・` ) 一起学习进步ღゝ◡╹)ノ♡ 关注公众号,回复"资料全集",不定期最新大数据业内资讯. ❤:在这里跟我一起学习技术.职场.人生.原理.健身.摄 ...

  4. Python基础 笔记(一) Python的介绍

    Python基础 笔记(一) Python的介绍 您好! 欢迎来到木易巷! 接下来,让我们一起来了解Python,走进Python~ 1.编程语言 编程语言(programming language) ...

  5. Python 基础笔记

    Python 基础笔记 内置函数 print() 打印输出 type() 数据类型查询 isinstance() 判断数据是否是已知类型 input() 接受键盘输入 range() 函数 forma ...

  6. Python基础(二)--数据类型,运算符与流程控制

    目录 Python基础(二)--数据类型,运算符与流程控制 1 数据类型 1.1 Python中的数据类型 1.2 整数类型(int) 1.3 布尔类型 1.4 浮点类型 1.5 复数类型 1.6 类 ...

  7. python学习笔记(二) 基本运算

    python学习笔记(二) 基本运算 1. 条件运算 基本语法 if condition1: do somethings1elif condition2: do somethings2else: do ...

  8. python 基础复习二

    这里写自定义目录标题 python 基础复习二 1.数据类型 2.数据的应用 3.数据的转换 总结 python 基础复习二 1.数据类型 最常用的数据类型有三种--字符串(str).整数(int)和 ...

  9. 廖雪峰Python基础练习(二)

    #廖雪峰Python基础练习(二)# 请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串: 答: # -*- coding: utf-8 -*-n1 = 255 n2 = 10 ...

最新文章

  1. 一文读懂图像局部特征点检测算法
  2. web.py使用要点
  3. Initializing Spring root WebApplicationContext
  4. 在 Delphi 下使用 DirectSound (9): 效果器初步及 IDirectSoundFXGargle8 效果器
  5. 深度学习分布式策略优化、显存优化、通信优化、编译优化综述
  6. spring mvc 总体启动流程
  7. 元素隐藏的三种方式对比(针对移动端项目中的按钮,先隐藏且不能被点击 visibility:hidden)
  8. html 占用空间 滚动轴_滚动轴承润滑及密封,轧机轴承技术(104)
  9. element UI 制作带快捷选项的时间选择器
  10. java poi读取word中附件_Java POI导入word, 带图片
  11. 4月24日云栖精选夜读 | 阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?...
  12. 笨办法学 Python · 续 练习 32:扫描器
  13. RabbitMQ的web界面解析
  14. printf打印二进制_优雅地打印 HEX 数据
  15. 自动驾驶——Tracking的学习笔记
  16. java对象存储管理
  17. ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别
  18. 2021-02-02 安卓闪退问题
  19. OpenCV cv.INTER_AREA和cv.INTER_CUBIC 还有cv.INTER_LINEAR
  20. python调用hive与java调用区别_使用Pyhive调用

热门文章

  1. 如何把pandas每一行数据转为一个列表
  2. 如何做好售前技术支持工作 (引用)
  3. linux 删除用户
  4. 收集的SEO相关工具网址
  5. Extending Conductor
  6. 运动耳机哪种款式好、运动耳机推荐性价比
  7. mysql存储音频视频文件_如何在mysql 或者 其他的数据库中存放图片 音频 视频
  8. java 类类型数组
  9. Get一个全新的网盘工具5T的OneDrive(如何领取免费的5T空间的OneDrive和Office)
  10. android高仿奇艺影视,android仿爱奇艺加载动画实例