## day04数据类型(二)
### 今日内容
- 列表
- 元组
### 内容回顾和补充
1.计算机基础
硬件:cpu/内存/硬盘/主板、网卡
操作系统
liunx(免费开源)
编译型语言:(代码写完后,编译器将其变成另外一个文件,然后交给计算机执行)
- c
- c++
- java
- c#
- Go
解释性语言:(一行一行执行 边解释边执行 实时翻译)
- Python
- PHP
- yuby
2.环境的安装
- Python解释器
- py2
- py3
- 开发工具:pycharm / 文本编辑器
3.Python语法
解释器路径
编码
1.编码种类
- acsii
- unicode
- utf-8 /utf-16
- gbk/gb2312
2.中文表示
- utf-8 3字节
- gbk 2字节
3.输入输出
py2:
- 输入:raw_input
- 输出:print ""
py3:
- 输入:input
- 输出:print()
4.数据类型
1.int
- py2中有 int/long ; py3有 int
- 强制转换:int("76")
- 除法:py2 ( 多加一行代码) 和py3(正常)
2.bool
- True False (其他语言true false)
- 特殊0 和False的其他类型: 0 和“”
3.sir 字符串
- 独有功能
upper 大/lower 小
replace 替换
strip lstrip rstrip 去空白
isdight 转数字
split rsplit 切割
- 补充
```python
name = 'alex'
#判断是否以al开头
#方式一
# val = name.startswith('al')
# print(val)
#方式二
# val = name[-4:-2]
# if val == 'al':
# print('以al开头')
# else:
# print('不是以al开头')
```
format
```python
##############2.format
name = "我叫{0},年龄:{1}".format('老男孩',73)
print(name)
```
encode
- ```python
################3.encode
name = '李杰' #解释器读取内存后,按照unicode编码存储:8个字节
v1 = name.encode('utf-8')
print(v1)
v2 = name.encode('gbk')
print(v2)
```
join
```python
############4.join
name = 'alex' #a_l_e_x
result = "_".join(name) #循环每一个元素,并在元素和元素之间加入连接符
print(result)
```
- 公共功能
1. 索引 获取一个字符
2. 长度 获取字符长度
3. 切片 获取一段字符串(子序列)
4. 步长
```python
name = 'alexalex'
# val = name [1:-1:2]
# val = name [1::2]
# val = name [::2]
# val = name [-1:0:-2] #不长负的就是向左走
# print(val)
#笔试题:将字符串反转
val = name [::-1]
print(val)
```
5.for循环
```python
#############################2.for循环
name = 'alex'
for item in name:
print(item)
continue
print('123')
print('结束')
#1.for 循环打印字符串的元素: for > while
#2 . 死循环 :while > for
```
```python
name = 'alex'
for item in name:
print(item)
break
print('123')
print('结束')
```
```py
# 练习题
#1.for循环打印“alex”的每一个元素: for > while
#2.请打印 : 1-10
# for i in range(1,11): #[1,2,3,4,5,6,7,8,9,10,11,12]
# print(i)
#2.打印1-10 不打印 7
for i in range(1,11):
if i == 7:
continue #pass
else:
print(i)
```
注意: 有穷尽优先使用for ,无穷尽用while
5.变量 字母数字下划线
6.注释
7.条件语句 if 、else
8.循环语句 while + for + break + continue
9.运算符
10.字符串格式化
- %s
- %d
- %%
11.其他
markdown笔记
git
- 本地 git软件
- git status
- git add
- git commit -m "提交记录"
- git push origin master 将本地目录同步码云目录
- 远程: 码云 / github(程序员交流平台)
- 面试相关
1.写出你常用的git命令
2.你们公司怎么用git做开发的?
1.在码云或者github 等代码托管平台创建自己的仓库,创建完码云会给你一个仓库地址
2.自己写代码
3.将代码提交远程仓库
初始化
进入一个任意文件夹
1. git init
2.git config 邮箱
3.git config 姓名
4.git remote add origin
注意:至此git已经将目录管理起来以后文件有任何变化git都会检测到
1、if
2.while
- 1.break
- 2.continue
3.数据类型
- 1.整型
- 2.字符串
- 3.布尔值
4.输入输出
5.变量
6.编码
7.运算符
8.字符串格式化
#### 总结
1.语法:变量if、while 运算符(辅助)
1. 必备if while
2. 重点 数据类型字符串
- 1.独有功能
- 2.公共功能
- 3.for
解决实际问题
逻辑+代码
### 内容详细
#### 1.列表
如果想要表示两个同学 users = "李绍,李启航"
如果想要表示多个事物,可以使用列表 元素按照 , 分割 切割后是列表类型
```python
users = ["李少奇","李启航",99]
#公共功能
```


注意
- 字符串/数字/布尔 本身不能删除或修改【不可变类型】,列表可以
练习题
```python
# #思路1
# """"""
# content = content.strip()
# v1 = int(content[0])
# v2 = int(content[-1])
# v3 = v1 +v2
#思路2
# 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)
#思路3
"""
content = input("请输入:")
result = content.split('+')
v1 = int(result[0])
v2 = int(result[1])
v3 = v1 + v2
print(v3) """
```
- for 循环
- ```python
# 1.for 循环
""""
users = ['李绍奇','李启航','张三丰','李子森']
for i in users:
"""
"""
users = ['李绍奇','李启航','张三丰','李子森']
for i in users:
for ele in i:
print(ele)"""
#练习题 请通过for循环和数字计数器 users实现:users = ['李绍奇','李启航','张三丰','李子森']
"""
0 李绍奇
1 李启航
2 张三丰
3 李子森
"""
#方式一
# users = ['李绍奇','李启航','张三丰','李子森']
# count = 0
# for i in users:
# print(count,i)
# count+=1
#方式二
# users = ['李绍奇','李启航','张三丰','李子森']
# users_len = len(users) # 4
# for index in range(0,users_len): #[0,1,2,3]
# print(index,users[index])
```
- 独有功能
```python
#1.append 在列表后追加一个元素
"""
users = []
while True:
name = input("请输入姓名:")
users.append(name)
print(users)"""
```
```python
#录入用户名和密码
users = []
for i in range(0,3):
name = input("请输入用户名和密码:")
users.append(name)
print(users)
#用户和密码校验
username = input('请输入登录的用户名:')
passward = input('请输入登录的密码:')
for index in users:
result = index.split(',')#每个是字符串 分割一下
user = result[0]
pwd = result[1]
if user == username and pwd == passward:
print('登陆成功')
break
```
```python
#1.append 在列表后追加一个元素
"""
users = []
while True:
name = input("请输入姓名:")
users.append(name)
print(users)"""
#录入用户名和密码
# users = []
# for i in range(0,3):
# name = input("请输入用户名和密码:")
# users.append(name)
# print(users)
# #用户和密码校验
# username = input('请输入登录的用户名:')
# passward = input('请输入登录的密码:')
# for index in users:
# result = index.split(',')#每个是字符串 分割一下
# user = result[0]
# pwd = result[1]
# if user == username and pwd == passward:
# print('登陆成功')
# break
#2.insert 插入
# users = ['李绍奇','李启航','张三丰','李子森']
# users.insert(1,'小黑')
# print(users)
#3.remove 删除
# users = ['李绍奇','李启航','张三丰','李子森']
# users.remove('张三丰')
# print(users)
#4.pop ()不加数字默认取出最后一个
# users = ['李绍奇','李启航','张三丰','李子森']
# users.pop(2)
# print(users)
#5.clear
# users = ['李绍奇','李启航','张三丰','李子森']
# users.clear()
# print(users)
```
总结
- 增:
- append/insert
- 删:
- remove/pop /clear/del users[2]
- 改
- users3=“新值”
- 查:
- 索引/切片
- 列表嵌套
列表嵌套

#### 2.元组
1.元组书写规范(不可以修改)
```python
users = [11,22,33,"老男孩"] #列表 可变 (可以改 删)
users = (11,22,33,"老男孩") #列表 不可变
```
2.公共功能

1.索引(排除:int/bool)
2.切片(排除:int/bool)
3.步长(排除:int/bool)
4.删除(排除:str/int/bool)
5.修改(排除:str/int/bool)
6.for 循环(排除:int/bool)
7.len(排除:int/bool)

3.独有功能(无)
4.元组中的元素不可以被修改和删除(整体可以修改)

元组中的元素不可以修改
元组中的列表不可以修改
元组中的列表里面的元素可以修改
### 总结
1.解释性语言和编译性语言区别
2.字符串补充
- startwith/endwith
- format
- encode
- join
3.公共
- 步长
- for 循环
- range(0,10)#帮你生成一个数字列表
特性
- 不可变,字符串不能删除或修改
4.元组(不可变)
- 1.索引(排除:int/bool)
- 2.切片(排除:int/bool)
- 3.步长(排除:int/bool)
- 4.删除(排除:str/int/bool)
- 5.修改(排除:str/int/bool)
- 6.for 循环(排除:int/bool)
- 7.len(排除:int/bool)