黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/
===============================================================
目录
一 、print
1. end''
2. \t对齐
二、字面量
1. 字面量的含义
2. 常见的字面量类型
3. 如何基于print语句完成各类字面量的输出
三、 注释的分类
1. 单行注释
2. 多行注释
3. 注释的作用是什么
4. 单行注释如何定义
5. 多行注释如何定义
四、 变量
1. 什么是变量
2. 变量的格式是
3. 变量的特征
4. print语句如何输出多份内容
5. python中如何做运算
五、 数据分类
1. 数据类型的分类
2. type()查看数据类型
3. 变量有类型吗
六、 数据类型转换
1. 任何类型都可以转换成字符串,对不对
2. 字符串可以随意转换成数字,对不对
3. 浮点数转成整数会丢失什么
七、 标识符
八、 运算符
九、 字符串扩展
1. 字符串的三种定义方式
2. 字符串的拼接
3. 常用的字符串格式化
4. 精度控制语法
5. 如果m比数字本身宽度小,会发生什么
6. .n会对小数部分做精度限制,同时?
7. f{}的拼接语法
8. input语句的基本使用
9. 查看索引位置index
10.字符串的替换 replace
10. 分割字符串split
11. 字符串去除前后空格strip()
12. 字符串去除首尾指定字符串strip(参数 )
13. 统计字符串中某个字符串出现的次数count
14. 统计字符串的长度len
15. 切片
十、布尔类型
十一、 比较运算符
十二、 if语句
十三、 循环
1. while循环
a. 练习题:求1-100的和
b. 练习题九九乘法表
2. for循环
3. for循环的九九乘法表
4. range
5. continue和break
十四、 函数
1. 函数定义
2. 有返回值的函数
3. 函数的None
4. 函数的多返回值
5. 传参不限个数*args
6. 传参不限个数**kwargs
十五、 数据容器-列表
1. 基础概念
2. 用法总结
3. index(元素)查看元素索引
4. 插入元素insert
5. 追加一个元素append
6. 追加一批元素extend
7. 删除列表元素 :del 列表[下标]
8. 删除列表元素:列表.pop(下标)
9. 删除列表元素:remove
10. 删除列表的所有元素clear()
11. 统计某个元素 在列表中的数量count(元素)
12. 统计列表中全部元素的数量len(列表)
十六、 数据容器-元组
1. 元组定义
2. 元组操作
3. 元组的特点
4. 切片
十七、 数据容器-集合
1. 集合的概念
2. 定义集合
3. 添加新元素 集合.add(元素)
4. 移除元素 集合.remove(元素)
5. 随机取出一个元素pop
6. 清空集合clear
7. 取出2个集合的差集difference
8. 消除2个集合的差集difference_update
9. 2个集合合并为1个union
10. 统计集合元素数量len
十八、 数据容器-字典
1. 字典的定义
2. 定义重复key的字典
3. 取值
4. 新增元素/更新元素
5. 删除元素pop
6. 清空字典clear
7. 获取全部key 字典.keys()
8. 遍历字典
9. 统计字典内的元素数量 len()
十九、 数据容器分类
二十、 数据容器排序
二十一、 lambda
==================================================================
换行 |
不换行 |
print("hello") print("world") |
print("hello",end='') print("world",end='') |
hello world 进程已结束,退出代码0 |
helloworld 进程已结束,退出代码0 |
代码中,被写在代码中的固定的值,称之为字面量。
我们目前了解:整数、浮点数、字符串这三类即可
print(字面量),如:
print(10),输出10
print(13.14),输出13.14
print("hello");输出 hello
注释:在程序代码中对程序代码进行解释说明的文字。
作用:注释不是程序,不能呗执行。只是对程序代码进行解释说明。让别人可以看懂程序代码的作用,能够大大增加程序的可读性
注释是代码中的解释型语句,用来对代码内容进行注释
注释不是代码,不会被程序执行
通过#定义,在#号的右侧的所有内容均作为注释
建议在#号和注释内容之间,间隔一个空格
单行注释一般用于对一行或小部分代码进行解释
通过一对三个引号来定义("""注释内容"""),引号内容均是注释,可以换行
多行注释一般对:python文件,类和方法进行解释
在程序运行时,能储存计算结果或能表示值的抽象概念。
简单的说,变量就是在程序运行时,记录数据用的
变量名 = 变量值
变量的值可以改变
print(内容1,内容2,..........,内容n)
在学习字面量的时候,我们了解到:数据是有类型的、
目前在入门阶段,我们主要接触如下三类数据类型:
string int float
变量没有类型。但是存储的数据有类型。
我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?
查看的是:变量存储的是数据的类型。因为,变量无类型,但是它存储的数据有。
print("int转string", type(str(123)),str(123))
print("float转string", type(str(123.123)),str(123.123))
print("int转float", type(float(123)),float(123))
print("float转int", type(int(123.12)),int(123.12))
正确
不对。字符串内必须只有数字才可以
丢失精度,也就是小数部分
转义
name = "'张三" print(name) name = '"张三' print(name) name = "\"张三\"" print(name) name = "\'张三\'" print(name) '张三 "张三 "张三" '张三' |
m.n的形式控制,如%5d,%5.2f,%.2f
m和.n均可省略
m不生效
会对小数部分做四舍五入
name="张三" age=18 xinzi=3000.23 print(f"我的名字是{name},年龄是:{age},薪资是:{xinzi}") 输出结果是: 我的名字是张三,年龄是:18,薪资是:3000.23 |
name = input("你的名字是:") print(name) |
输出:zhnagsan |
value="abc def"; print(value.index("d")) |
4 |
value="abc def abc"; new_value = value.replace("a","g") print(new_value) |
gbc def gbc |
value="abc def abc"; new_value = value.split(" ") print(new_value) |
['abc', 'def', 'abc'] |
value=" abc def abc "; new_value = value.strip() print(new_value) |
abc def abc |
value="abc def abc"; print(value.strip("ab")) |
value="abc def cab"; print(value.strip("ab")) |
c def abc |
c def c |
value="abc def cab"; print(value.count("ab")) |
2 |
value="abc def cab"; print(len(value)) |
11 |
value="0123456"; print(value[1:3]) |
value="0123456"; print(value[::2]) |
12 |
0246 |
布尔类型的值 是True 和 False
if
if(3>2): print("3>2") |
3>2 |
if else
if(3<2): print("11111") else: print("22222") |
222222 |
if elif else
num=10 if(num==1): print("num==1") elif(num==10): print("num==10") else: print("num==7") |
num==10 |
num=1 sum=0 while num<=100: sum+=num num+=1 print(sum) |
5050 |
i=1; while i<10: j = 1; while j<=i: print(f"{j}*{i}={i*j}\t",end='') j+=1; i += 1; print() |
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 |
data="hello world"; for item in data: print(item) |
h e l l o w o r l d |
end='' 不换行
\t 对齐
print()换行
for i in range(1,10): for j in range(1,i+1): print(f"{j}*{i}={j*i}\t",end='') print() |
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 |
range(num) |
range(num,num) |
range(num,num,step) |
data = range(5) for item in data: print(item) |
data = range(5,8) for item in data: print(item) |
data = range(5,10,2) for item in data: print(item) |
0 1 2 3 4 |
5 6 7 |
5 7 9 |
continue:直接进行下次循环
break:结束循环
def add(a,b): return a+b; result = add(3,30); print(result) |
33 |
def test(): return 1,2,3 x,y,z=test() print(f"{x},{y},{z}") |
1,2,3 |
def test(*args): print(args) test("1", "2", "3") |
('1', '2', '3') |
def test(**kwargs): print(kwargs) test(name="12", age="22", sex="22") |
{'name': '12', 'age': '22', 'sex': '22'} |
列表的正向索引取值方法
列表的反向索引取值方法
元素存在 |
元素不存在 |
mylist=[1,2,3] print(mylist.index(1)) |
mylist=[1,2,3] print(mylist.index(5)) |
0 |
ValueError: 5 is not in list |
列表.insert(下标,元素),在指定的位置插入指定的值
mylist=[1,2,3] mylist.insert(1,"啦啦") print(f"最新的数据时:{mylist}") |
最新的数据时:[1, '啦啦', 2, 3] |
列表append(元素),将指定的元素,追加到列表的尾部
mylist=[1,2,3] mylist.append("lala") print(f"最新的数据是:{mylist}") |
最新的数据是:[1, 2, 3, 'lala'] |
列表.extend(其他数据容器),将其他的数据容器的内容取出。依次追加到列表的尾部
mylist=[1,2,3] mylist.extend([5,6,7]) print(f"最新的数据是:{mylist}") |
最新的数据是:[1, 2, 3, 5, 6, 7] |
通过下标删除元素
mylist=[1,2,3] del mylist[1] print(f"最新的数据是:{mylist}") |
最新的数据是:[1, 3] |
通过下标删除元素
mylist=[1,2,3] del_data=mylist.pop(1) print(f"最新的数据是:{mylist},取出的值是{del_data}") |
最新的数据是:[1, 3],取出的值是2 |
只会删除第一个匹配的元素
通过元素删除列表元素
mylist=[1,2,3,1] mylist.remove(1) print(f"最新的数据是:{mylist}") |
最新的数据是:[2, 3, 1] |
mylist=[1,2,3,1] mylist.clear() print(f"最新的数据是:{mylist}") |
最新的数据是:[] |
mylist=[1,2,3,1] count=mylist.count(1) print(count) |
2 |
mylist=[1,2,3,1] count=len(mylist) print(count) |
4 |
集合是无序的,所以集合不支持:下标索引访问
但是集合和列表一样,是允许修改的
my_set={"张三","李四","王五","张三"} print(my_set) |
{'张三', '李四', '王五'} |
my_set={"张三","李四","王五","张三"} my_set.add("1") print(my_set) |
{'1', '李四', '张三', '王五'} |
my_set={"张三","李四","王五","张三"} my_set.remove("李四") print(my_set) |
{'张三', '王五'} |
my_set={"张三","李四","王五","张三"} my_set.pop() print(my_set) |
{'张三', '李四'} pop随机去掉一个元素 |
my_set={"张三","李四","王五","张三"} my_set.clear() print(my_set) |
set() |
集合1.difference(集合2):取出集合1有而集合2没有的。原来的2个集合不变
set1={1,2,3} set2={1,3,5} set3=set1.difference(set2) print(set3) |
{2} |
集合1.difference_update(集合2)
对比集合1和集合2,在集合1中删除和集合2相同的元素
结果:集合1被修改 集合2不变
set1={1,2,3} set2={1,3,5} set1.difference_update(set2) print(set1) |
{2} |
集合1.union(集合2)
将集合1和集合2组合成新的集合
结果:得到新集合 集合1和集合2不变
set1={1,2,3} set2={1,3,5} set3 = set1.union(set2) print(set3) |
{1, 2, 3, 5} |
set1={1,2,3} print(len(set1)) |
3 |
my_dict1={"1":"张三","2":"李四","3":"王五"} my_dict2={} my_dict3=dict() print(f"my_dict1的内容是:{my_dict1},类型:{type(my_dict1)}") print(f"my_dict2的内容是:{my_dict2},类型:{type(my_dict2)}") print(f"my_dict3的内容是:{my_dict3},类型:{type(my_dict3)}") |
my_dict1的内容是:{'1': '张三', '2': '李四', '3': '王五'},类型: my_dict2的内容是:{},类型: my_dict3的内容是:{},类型: |
my_dict1={"1":"张三","1":"李四","3":"王五"} print(f"my_dict1的内容是:{my_dict1},类型:{type(my_dict1)}") |
my_dict1的内容是:{'1': '李四', '3': '王五'},类型: 重复的key :后边的数据会把前边重复的数据给覆盖掉 |
my_dict1={"1":"张三","2":"李四","3":"王五"} print(my_dict1["2"]) |
李四 |
字典[key]=value
如果key存在,就是更新
如果key不存在 就是新增
my_dict1={"1":"张三","2":"李四","3":"王五"} score = my_dict1.pop("2") print(my_dict1) print(score) |
{'1': '张三', '3': '王五'} 李四 |
my_dict1={"1":"张三","2":"李四","3":"王五"} my_dict1.clear() print(my_dict1) |
{} |
语法:字典.keys(),结果:得到字典中的全部key
my_dict1={"1":"张三","2":"李四","3":"王五"} keys = my_dict1.keys() print(keys) |
dict_keys(['1', '2', '3']) |
方法1:获取到全部key 循环key实现遍历 |
方法2:直接对字典for循环,循环的是key,所以能直接循环字典实现遍历 |
my_dict1={"1":"张三","2":"李四","3":"王五"} keys = my_dict1.keys() for element in keys: print(f"key:{element},value:{my_dict1[element]}") |
my_dict1={"1":"张三","2":"李四","3":"王五"} for key in my_dict1: print(f"key:{key},value:{my_dict1[key]}") |
key:1,value:张三 key:2,value:李四 key:3,value:王五 |
key:1,value:张三 key:2,value:李四 key:3,value:王五 |
my_dict1={"1":"张三","2":"李四","3":"王五"} print(len(my_dict1)) |
3 |
sorted(容器) 正序
sort(容器,reverse=True) 倒序
data=[3,1,2,4,5] print(sorted(data)) print(sorted(data,reverse=True)) |
[1, 2, 3, 4, 5] [5, 4, 3, 2, 1] |