目录
数据类型
格式化输出
数据类型转换
条件语句
if嵌套
循环
一、while循环
while循环嵌套
二、for循环
三、退出循环(break和continue)
四、else
字符串
一、下标
二、切片
三、常用操作方法
查
改
列表[]
一、id查看地址
二、列表元素获取:下标/索引
三、支持循环遍历
四、列表元素更新和删除
五、for...in 和 if...in...
六、删除漏删问题
七、列表切片
八、列表添加
九、列表排序
十、类型转换list()
十一、列表删除和翻转
数据类型
数值:整型int 和浮点型float
布尔型(bool)
字符串(str)
列表(list)
元组(tuple)
集合(set)
字典(dict)
判断类型的方法:type()
格式化输出
1. 格式化符号
%s:格式化输出字符串
%d:格式化输出整数
%f:格式化输出浮点数
print('我的名字是%s,今年%d岁了' % (name, age))
2. f-
字符串
f'{表达式
}'
print(f'我的名字是{name}, 明年{age + 1}岁了')
3. 转义字符
n:换⾏
t:制表符
补充:print()默认自带end="n"换行结束符,导致每个print()会直接换行显示
print('要打印的内容',end="n")
数据类型转换
1、int(x[,base] 将x转换为一个整数
2、str(x) 将对象x转换为字符串
3、eval(str) 将字符串中的数据转换成原本的类型
4、tuple(s) 将序列s转换为一个元组
5、list(s) 将序列s转换为一个列表
条件语句
条件成立执行某些代码,条件不成立则不执行这些代码
if 条件1:
条件1成立需要执行的语句
elif 条件2:
条件2成立需要执行的语句
else:
以上条件都不成立需要执行的语句
if嵌套
if 条件1:
条件1成立执行的代码
if 条件2:
条件2成立执行的代码
if嵌套执行流程
补充:三目运算符:
条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
循环
一、while循环
while 条件:
条件成立需要重复执行的代码1
...
while循环嵌套
while 条件1:
条件1成立执行的重复代码
...
while 条件2:
条件2成立执行的重复代码
...
while 条件:
条件成立需要重复执行的代码1
...
while循环嵌套
while 条件1:
条件1成立执行的重复代码
...
while 条件2:
条件2成立执行的重复代码
...
执行流程
应用:九九乘法表
# i为行,j为列
j = 1
while j <= 9:
i = 1
while i <= j:
print(f'{i} * {j} ={j * i}', end='t')
i += 1
print()
j += 1
二、for循环
for 变量 in 序列:
重复执行的代码1
重复执行的代码2
...
应用:九九乘法表
for j in range(1, 10):
i = 1
for i in range(1, j + 1):
print(f'{i} * {j} = {j * i}', end='t')
i += 1
print()
j += 1
三、退出循环(break和continue)
break:终止循环
continue:退出当前循环,执行下一次循环
四、else
while 条件:
条件成⽴重复执⾏的代码
else:
循环正常结束之后要执⾏的代码
for 临时变量 in 序列:
重复执⾏的代码
...
else:
循环正常结束之后要执⾏的代码
while和for都可以配合else使用
else指的是循环正常结束之后要执行的代码,break终止循环不会执行else下方缩进的代码
continue退出循环会执行else下方缩进的代码
字符串
一、下标
下标从0开始
二、切片
切片是指对操作的对象截取其中一部分。字符串、列表、元组都支持切片操作
序列[开始位置下标:结束位置下标:步长]
切片是指对操作的对象截取其中一部分。字符串、列表、元组都支持切片操作
序列[开始位置下标:结束位置下标:步长]
三、常用操作方法
查
1、 find() :检测某个子串是否包含在这个字符串中,如果包含,就返回这个子串开始的位置下标,否则返回-1
字符串序列.find(子串, 开始位置下标, 结束位置下标)
注意:开始位置和结束位置下标可省略,代表在整个字符串序列中查找
2、index() :检测某个子串是否包含在这个字符串中,如果包含,就返回这个子串开始的位置
下标,否则报异常
字符串序列.index(子串, 开始位置下标, 结束位置下标)
3、rfind() :和find()功能相同,查找方向为右侧开始
4、rindex():和index()功能相同,查找方向为右侧开始
5、count():返回某个子串在字符串中出现的次数
字符串序列.count(子串, 开始位置下标, 结束位置下标)
改
1、replace() 替换
字符串序列.replace(旧子串, 新子串, 替换次数)
2、split() 按照指定字符分割字符串
字符串序列.split(分割字符, num)
mystr = "hello world and itcast and itheima and python"
print(mystr.split('ad', 2))
注意:num指的是分割次数,当num小于等于分割字符的总数时,分割后返回的数据个数是num+1
3、join()用单个连接符或者子串 连接已有的字符串,生成新的字符串
字符或⼦串 . join ( 多字符串组成的序列 )
list1 = ['a', 'b', 'wang', 'ddd']
print('-'.join(list1))
列表[]
一、id查看地址
二、列表元素获取:下标/索引
下标从左往后:0,1…len()-1
下标从右往左:-1.-2,…-len()
三、支持循环遍历
# 循环
for name in names:
if name == 'name':
print('有这个人存在')
break
else:
print('没找到这个人')
# 简便写法
if 'name' in names:
print('有这个人存在')
else:
print('没找到这个人')
四、列表元素更新和删除
更新:直接通过下标找到元素,然后再赋予新值
names = ['jack', 'name', 'superman']
for i in range(len(names)):
if 'name' in names[i]:
names[i] = 'hp'
break
print(names)
删除:可利用while循环通过下标找到要删除的元素,然后再通过del 删除,注意list index out of range错误
brands = ['jack', 'name', 'superman','mac','lily']
l = len(brands) # 列表长度
i = 0 # 下标默认值
while i < l:
if 'name' in brands[i] or 'mac' in brands[i]:
del brands[i]
l -= 1 # 长度-1
i += 1 # 索引+1
print(brands)
五、for...in 和 if...in...
for...in 指循环遍历
if... in... 是条件判断
六、删除漏删问题
words = ['hello', 'goods', 'gooo', 'world', 'digot', 'alpha']
w = input('请输入一个单词')
i = 0 # 表示下标
l = len(words) # 列表长度
while i < l:
if w in words[i]:
del words[i]
l -= 1
continue # 解决列表元素漏删问题
i += 1
print(words)
加continue前
加continue后
七、列表切片
list[起始索引:结束索引:步长&方向]
八、列表添加
- append() 末尾添加
如果append()追加的数据是一个序列,则将整个序列加到列表末尾
- extend() 列表末尾追加数据,如果追加数据是一个序列,则将这个序列的数据逐一添加到列表
单个数据
序列数据
- insert 指定位置追加 list1.insert(索引,值)
九、列表排序
- sort
- sorted
默认升序,降序加reverse = True
自己实现排序:冒泡排序
十、类型转换list()
将指定的内容转换成列表,可迭代的内容可以放在list中
可以放在for... in...里取的,就是可迭代的
十一、列表删除和翻转
del list[index] 删除指定的列表元素
remove(e) :删除列表中第一次出现的元素e,返回值是None,如果没有找到要删除的元素则报出异常
pop():默认不传参,指的是移除列表最后一个元素,返回值是删除的元素;也可指定下标删除元素
clear():清空列表
reverse() :改变列表本身的位置结构
copy() : 列表复制



