day04 数据类型(二)
今日内容
- 列表
- 元组
内容回顾和补充
-
计算机基础
-
硬件:cpu 硬盘 内存 主板 显卡
-
操作系统
- linux(免费开源)
- centos
- ubuntu
- redhat
- windows
- mac
- linux(免费开源)
-
解释器/编译器
-
补充:编译型语言和解释型语言?
-
编译型语言:cc++javac#go
-
解释型语言:pyphp uby
# 编译型:代码写完后,编译器将其变成另外一个文件,然后中交给计算机执行 # 解释型:写完代码交个解释器,解释器会从上到下一行行代码执行:边鵃边执行 [实时翻译]
-
-
软件(应用程序)
-
-
环境的安装
- python 解释器
- py2 2020年不在支持,语法问题
- py3 建议用
- 开发工具:pycharm(推荐) /文本编辑器
- python 解释器
-
python 语法
-
解释器路径
#!/usr/bin/env python print("你好")
linux系统应用:
- 赋予文件可执行权限
- ./hello.py
-
编码
#!/usr/bin/env python # -*- coding:utf-8 -*- print("你好")
-
编码种类
- acsii
- unicode
- utf-8/utf-16
- gbk/gb2312
-
中文表示
- utf-8 :3字节
- gbk:2字节
-
python默认解释器编码
- py3:utf-8
- py2:acsii
-
-
输入输出
- py2:
- 输入:raw_input
- 输出:print “”
- py3:
- 输入:input
- 输出:print()
- py2:
-
数据类型
-
int
- py2 中有:int/long;py3中有int
- 强制转换:int(“4765”)
- 除法:py2(多加一行代码) 和py3(正常)
-
bool
- True/False (其他语言:true/false)
- 特殊为False的基他类型: 0和“”
-
str
-
独有功能:
-
upper/lower 大小写
-
replace 替换
-
strip/lstrip/rstrip 去空白
-
isdigit 判断是否是数字
-
split/rsplit 切割
-
补充:
-
startswith/endswith
name = "alex" # 判断是否以al开头 """ # 方式一 flag = name.startswith("al") # 是否以al开头 print(flag) # name.endswith() """ """ # 方式二 val = name[0:2] if val =="al": print("是以alga开头") else: print("不是") """
name = "alex" # 判断是否以al开头 """ # 方式一 flag = name.endswith("al") # 是否以al结尾 print(flag) # name.endswith() """
-
format
name = "我叫{0},年龄:{1}".format("ly", 10) print(name)
-
encode
name = "李杰" # 解释器读取到内存后,按照unicode编码存储:8个字节。 v1 = name.encode("utf-8") print(v1) v2 = name.encode("gbk") print(v2)
-
join (连接加入)
name = "alex" # a_l_e_x result = "**".join(name) # 循环每个元素,并在元素和元素之间加入连接符。 "_" print(result)
-
-
-
公共功能:
-
索引,获取一个字符
-
切片,获取一段字符串(子序列)
-
步长
name = "alex" # val = name[0:-1:2] # val = name[1:-1:2] # val = name[1::2] # val = name[::2] # val = name[-1::2] # val = name[-1:0:-1] # 步长可正可负 # print(val) # 笔试题:请将字符串反转。 print(name[::-1])
-
长度len(),获取字符长度
-
for循环
name = "alex" for item in name: print(item) print("结束")
name = "alex" for item in name: print(item) break print("123") print("结束")
name = "alex" for item in name: print(item) continue print("123") print("结束")
# 练习题 # 1. for循环打印 “alex” 的每个元素: for > while v = "123456789" for i in v: print(i) # 2. 请打印:1-10 """ for i in range(1, 11): # [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13] print(i) """ # 3. 请打印:1-10 不要7 for 循环 + range """ for i in range(1, 11): if i == 7: continue print(i) """
注意:for和while的应用场景:有穷尽用for,无穷尽用while
-
-
-
-
变量
-
注释
-
条件语句: if elif else
-
循环语句:while + for +break +continue
-
运算符
-
字符串格式化
- %s
- %d
- %%
-
其他
- markdown笔记
- git
- 本地:git软件 [常用命令]
- git status 查看状态
- git add .
- git commit -m “提交记录”
- git push origin master
- 远程: 码云 / github (程序员交友平台)
- 面试相关:
- 写出你常 用的git命令。
- 你们公司是怎么用git做开发的?
- 在码云或GitHub等代码托管的网站创建自己仓库,创建 完之后码云会给我一个仓库地址, 如:https://gitee.com/yzwone/oldboy_pyqz_s21.git
- 自己写代码。。。。
- 将代码提交到远程 仓库。
- 初始化
- 进入一个任意文件夹,如:d:homework
- git init
- git config 邮箱
- git config 姓名
- git remote add origin https://gitee.com/yzwone/oldboy_pyqz_s21.git
- 注意:至此git已经将d:homework目录管理起来,以后此文件夹有任何变化,git都会检测到。(使用 git status 命令可以查看状态)
- 代码收集并提交
- git status
- git add .
- git commit -m “修改了新功能”
- git push origin master 将本地 D:homework目录下的内容同步到码云仓库。
- 修改代码或删除文件等对本地D :homework 下任何文件做操作。
- git status
- git add .
- git commit -m “修改了新功能”
- git push origin master 将本地 D:homework目录下的内容同步到码云仓库。
- [避免]如果远程有本地没有的代码,必须先执行:[可能会引发合并问题]
- git pull origin master # 把远程文件拉下来
- git status
- git add .
- git commit -m “修改了新功能”
- git push origin master 将本地 D:homework目录下的内容同步到码云仓库。
- 初始化
- 本地:git软件 [常用命令]
-
总结
- 语法:变量/if/while/运算符(辅助)
- 必备:变量/if/while/运算符
- 重点:数据类型中上字符串
- 独有功能
- 公共功能
- for
- 解决实际问题:
- 逻辑 + 代码
- 语法:变量/if/while/运算符(辅助)
-
内容详细
1.列表
如查想要表示两个同学 users = ”李少奇,李启航“
以后想要表示多个”事物“,可以使用列表。
users = ["李少奇", "李启航", 99]
-
公共功能
-
len
users = ["李少奇", "李启航", 99] val = len(users) print(val) # 3
-
索引
users = ["李少奇", "李启航", 99] val = users[0] print(val)
-
切片
users = ["李少奇", "李启航", 99] val = users[0:2]
-
删除 del (数字、布尔、字符串除外)
users = ["李少奇", "李启航", 99] # 方式一 users.pop(1) print(users) # 方式二 del users[1] print(users)
注意:
- 字符串本身不能修改或删除 [不可变类型] v1 = “alex”.upper()
- 列表是可变类型
修改(数字、布尔、字符串除外)
users = ["李少奇", "李启航", 99]f users[2] = 66 users[0] = "要"
-
步长
users = ["李少奇", "李启航", 99] val = users[0:2:2]
-
练习题
""" 实现一个整数加法计算器(两个数相加): """ # 思路一: """ content = input("请输入:") # 5+9 或 5 +9 或 5 + 9 content = content.strip() v1 = int(content[0]) v2 = int(content[-1]) v3 = v1 + v2 """ # 思路二: """ content = input("请输入:") # 5+9 或 5 +9 或 5 + 9 content_len = len(content) index = 0 total = 0 while True: char = content[index] if char.isdigit(): total += int(char) index += 1 if index == content_len: break print(total) """ # 思路三: content = input("请输入:") # 5+9 或 5 +9 或 5 + 9 result = content.split("+") print(result) v1 = int(result[0]) v2 = int(result[1]) v3 = v1 + v2 print(v3)
-
for 循环
# 1. for循环 users = ["李少厅", "liqihang", "zsfen", "李要大"] for i in users: print(i) """ """ users = ["李少厅", "liqihang", "zsfen", "李要大"] for i in users: for ele in i: print(ele) """ # 练习题:请通过for循环和数字计数器实现: users = ["李少厅", "liqihang", "zsfen", "李要大"] """ # 方式一 users = ["李少厅", "liqihang", "zsfen", "李要大"] num = 0 for i in users: print(num, i) num += 1 """ # 方式二 users = ["李少厅", "liqihang", "zsfen", "李要大"] users_len = len(users) for index in range(0, users_len): print(index, users[index])
-
-
独有功能
-
append,在列表的最后追加一个元素
users = [] users.append("alex") print(users)
"""" # 示例一 users = [] while True: name = input("请输入姓名:") users.append(name) print(users) """ # 录入用户和密码 """ # 示例二 users = [] for i in range(0,3): name = input("请输入姓名:") users.append(name) print(users) """
-
insert
-
remove
-
pop
-
clear
-
-
总结:
-
增:
- append / insert
-
删:
- remove / pop /clear / del users[2]
-
改:
- users[3] = “新值”
-
查:
- 索引 / 切片
-
列表嵌套
users = ["alex",0,True[11,22,33,"老男孩"],[1,["alex","oldboy"],2,3]] users[0] users[0][2] users[3] # [11,22,33,"老男孩"] users[3][-1] # "老男孩" users[3][-1][1] # "男" users[3] = 666
2. 元组
-
元组书写规范
users = [11,22,33,"老男孩"] # 列表(可变) users = (11,22,33,"老男孩") # 元组(不可变)
-
公共功能
-
索引(排除:int/bool)
users = (11,22,33,"老男孩") print(users[1])
- 切片(排除:int/bool)
users = (11,22,33,"老男孩") print(users[0:2])
- 步长(排除:int/bool)
users = (11,22,33,"老男孩") print(users[0:2:2])
-
删除 (排除:tuple/str/int/bool)
-
修改(排除:tuple/str/int/bool)
-
for 循环 (排除:int/bool)
users = (11,22,33,"老男孩") for item in users: print(item)
- len (排除:int/bool)
users = (11,22,33,"老男孩") print(len(users))
-
独有功能(无)
-
特殊:元组中的元素(儿子)不可被修改/删除。
# 示例一: v1 = (11,22,33) v1[2] = 9 # 错误 v1 = 999 # 正确 # 示例二:可以嵌套 v1 = (11,22,33(44,55,66),(11,2,(99,88),3) # 示例三:嵌套 v2 = [11,22,33,(11,22,33)] v2[-1][1] = 99 # 错误 v2[-1] = 1324 # 正确 # 示例四 嵌套 元组内的列表内容可以修改 v3 = (11,[1,2,3],22,33) v3[1] = 666 # 错误 v3[1][2] = 123
-
-
总结
-
解释型语言和编译型区别以及列举你了解的语言?
-
字符串补充功能
- 独有
- startswith/endswith
- format
- encode
- join
- 公共
- 索引
- 切片
- 修改
- 删除
- len
- 步长(面试题)
- for循环
- range(0,10) # 帮助你生成一个数字列表[0,1,2,3,4,,6,]
- 特性:
- 不可变,所以字符串元素不能删除和修改。
-
git本地和远程要同步,以后只能操作本地然后中提交。
-
列表(可变)
- 公共
- 索引
- 切片
- 步长
- 修改
- 删除
- for循环
- len
- 独有
- append
- insert
- pop
- remove
- clear
- 列表嵌套 ()
- 元组(不可变)
-
公共
- 索引
- 切片
- 步长
- for循环
- len
-
独有(无)
-
元组嵌套
v3 = (11,[1,2,3],22,33) v3[1] = 666 # 错误 v3[1][2] = 123
- 独有