No.4列表&元组
No.4
今日概要
- 列表
- 元组
- 字典
- 集合
内容回顾和补充
计算机基础
硬件
操作系统
- Linux(免费/开源)
- centos
- ubuntu
- redhat
- windows
- mac
- Linux(免费/开源)
解释器/编译器
补充:编译型语言和解释型语言
#编译型:代码写完后,编译器将其全部转变成另一个文件,再交给计算机执行。 #解释型:代码写完后,解释器从上到下逐行转变交给计算机执行,一边解释一边执行。(实时翻译)
软件(应用程序)
环境的安装
- python解释器
- py2
- py3
- 开发工具IDE:pycharm
- python解释器
语法
解释器路径:hellow.py
#!/usr/bin/env python print('你好')
Linux系统应用:
- 赋予文件可执行权限
- ./hellow.py
- 输入此命令后会自动找文件第一行,根据第一行内容寻找解释器路径。
编码
#!/usr/bin/env python # -*- coding:utf-8 -*- print('你好')
- 编码种类
- acsii
- unicode
- utf-8 / utf-16
- gbk / gb2312
- 中文表示
- utf-8:3字节
- gbk:2字节
- 编码种类
输入输出
- py2
- 输入:raw_input()
- 输出:print+空格
- py3
- 输入:input()
- 输出:print()
- py2
数据类型
int
- 类型
- py2:int / long
- py3:int
- 强制转换:int()
- 除法
- py2:取整(要变正常需要加一行代码)
- py3:正常
- 类型
bool
- Ture/False(其它语言:ture/false)
- 转bool值为False的其它类型:0 和 ""
str
独有功能
.upper() / .lower()
.isgidit()
.strip() / .lstrip() / .rstrip()
.replace( , , )
.split( , ) / rsplit( , )
补充
.startswith( ) / .endswith( )
name = 'alex' #判段是否以al开头 flag = name.startswith('al') print(flag) 结果True #判断是否以ex结尾 flag2 = name.endswith('ex') print(flag2) 结果True
.format( , ,...)
msg = '我的姓名是{0},我的年纪是{1}岁。'.format('老男孩','18') print(msg)
.encode(‘编码‘)
neme = '李杰' #解释器读取到内存后,按照unicode编码存储,占了8个字节。 v1 = neme.encode('utf-8') print(v1) v2 = name.encode('gbk') print(v2)
.join()
name = 'alex' s = '_'.join(name) print(s) 结果: a_l_e_x
公共功能
索引:获取单个元素
切片:获取多个元素(子序列)
步长
name = 'abcdabcd' v = name[-1:] print(v) 结果:d #步长默认是1,且默认往后找。 name = 'abcdabcd' v = name[-1:0] print(v) 结果:空 #面试题将字符串反转 name = 'alex' v = name[-1::-1] print(v)
长度
for循环
name = 'alex' for item in name: print(item) name = 'alex' for item in name: print(item) break print('123') name = 'alex' for item in name: print(item) continue print('123')
#习题:循环打印 1 ~ 10 for i in range(1,11): print(i)
注意:for和while的应用场景。有穷尽先用for,无穷尽用while。
变量
注释
条件语句
循环语句
- while
- for
运算符
字符串格式化
- %s
- %d
- %%
其它
- markdow笔记
- git
- 本地:git软件
- git status
- git add .
- git commit -m ‘提交记录‘
- git push origin master
- 远程:码云 / github(程序员交友平台)
- 本地:git软件
总结
- 语法
- 必备:变量 / if / while
- 重点:字符串
- 独有功能
- 公共功能
- for
- 解决实际问题
- 逻辑 + 代码
- 语法
内容详细
01.列表List
如果想要表示两个人名,虽然使用字符串可以做到,但是很难索取分别输出。
users = '张三,李四'
以后想要表示多个元素可以使用列表。
users = ['张三','李四','王五',100]
公共功能
长度
users = ['张三','李四','王五',100] val = len(users) print(val) 结果:3
索引
users = ['张三','李四','王五',100] val = users[0] print(val) 结果:张三 #类型str
切片
users = ['张三','李四','王五',100] val = users[0:2] print(val) 结果:['张三', '李四']
删除(int/bool/str除外)
users = ['张三','李四','王五',100] del users[1] print(users)
注意:
- 字符串本身不能被修改(不可变类型) m = ‘alex‘.upper()
- 列表是可变类型
修改(int/bool/str除外)
users = ['张三','李四','王五',100] users[3] = 66 users[0] = '赵四' #users[0][1]不可修改
步长
users = ['张三','李四','王五',100] val = users[0:2:2] print(val) 结果:['张三'] #类型list
#习题 content = input('请输入:') n = content.split('+') print(n) v1 = int(n[0]) #转换的时候,字符串两边空格会自动去除,中间若有空格会报错。 v2 = int(n[1]) v3 = v1 + v2 print(v3)
for循环
users = ['张三','李四','王五',100] for i in users: print(i)
独有功能
追加模式:.append(元素)
#示例:用户名密码录入+效验 users = [] for i in range(0,3): name = input('请输入用户名和密码:') users.append(name) print(users) username = input('请输入用户名:') password = input('请输入密码:') for item in users: result = item.split(' ') user = result[0] pwd = result[1] if user == username and pwd == password: print('登陆成功') break
插入模式:.insert(索引,元素)
lst = ["林俊杰", "周润发", "周芷若"] print(lst) lst.insert(1,'李连杰') print(lst)
特定删除:.renmove(元素)
索引删除:.pop(索引)
列表清空:.clear()
总结:
增:
- append / insert
删:
- remove / pop / clear / del list[索引]
改:
- list[索引] = 新元素
查:
- 索引/切片
列表嵌套
lst = ["林俊杰", "周润发", "周芷若",['张三',['李四','王五',88],'李连杰'],100] lst[0] lst[3] lst[3][1] # ['李四','王五',88] lst[3][1][2] # 88
02.元组Tuple
lst = ['张三','李四','王五',100] # 列表可变类型
tup = ('张三','李四','王五',100) # 元组不可变类型
公共功能
索引(排除:int/bool)
tup = ('张三','李四','王五',100) print(tup[0]) print(tup[-1])
切片(排除:int/bool)
tup = ('张三','李四','王五',100) print(tup[0:2])
步长(排除:int/bool)
tup = ('张三','李四','王五',100) print(tup[0:2:2])
for循环(排除:int/bool)
tup = ('张三','李四','王五',100) for item in tup: print(item)
长度(排除:int/bool)
tup = ('张三','李四','王五',100) print(len(tup))
没有独有功能
特殊:元组中的元素不可被修改和删除
v1 = (11,22,33) v1[2] = 999 #错误 v1 = 999 #正确 元组可以嵌套 v1 = (11,22,33,(44,55,66),(77,88,(99,111),222)) 列表嵌套元组 v1 = [11,22,33,(11,22,33)] v1[-1][1] = 999 #错误 v1[-1] = 999 #正确 元组嵌套列表 v1 = (11,[1,2,3],22,33) v1[1] = 999 #错误 v1[1][2] = 999 #正确
总结
解释型语言和编译型语言区别
字符串补充功能
独有
- startswith / endswith
- format
- encode
- join
公共
- 索引
切片
- 步长(面试题)
- for循环
- range
len
特性
- 不可变(str数据元素不可以删除和修改)
git本地和远程要同步,以后之操作本地别操作远程。
列表(可变)
- 公共
- 索引
- 切片
- 步长
- 修改
- 删除
- for
- len
- 独有
- append
- insert
- pop
- remove
- clear
- 嵌套
- 公共
元组(不可变)
- 公共
- 索引
- 切片
- 步长
- for
- len
- 无独有功能
- 嵌套
- 公共
原文:https://www.cnblogs.com/elliottwave/p/12521780.html