python day04

发布时间 2023-03-28 11:45:20作者: 旁观者1
## 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.条件语句  ifelse

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]
#公共功能
```

![image-20230323162414857](C:\Users\山东张学友\AppData\Roaming\Typora\typora-user-images\image-20230323162414857.png)

![image-20230324103536471](C:\Users\山东张学友\AppData\Roaming\Typora\typora-user-images\image-20230324103536471.png)

注意

- 字符串/数字/布尔 本身不能删除或修改【不可变类型】,列表可以

  

 练习题

```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=“新值”

- 查:

  - 索引/切片
  - 列表嵌套

  列表嵌套

  ![image-20230324104933502](C:\Users\山东张学友\AppData\Roaming\Typora\typora-user-images\image-20230324104933502.png)

#### 2.元组

1.元组书写规范(不可以修改)

```python
users = [11,22,33,"老男孩"]   #列表 可变  (可以改 删)
users = (11,22,33,"老男孩")   #列表 不可变
```

2.公共功能

![image-20230324110245310](C:\Users\山东张学友\AppData\Roaming\Typora\typora-user-images\image-20230324110245310.png)

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)

![image-20230324110321628](C:\Users\山东张学友\AppData\Roaming\Typora\typora-user-images\image-20230324110321628.png)

3.独有功能(无)

4.元组中的元素不可以被修改和删除(整体可以修改)

![image-20230324110814604](C:\Users\山东张学友\AppData\Roaming\Typora\typora-user-images\image-20230324110814604.png)

元组中的元素不可以修改

元组中的列表不可以修改

元组中的列表里面的元素可以修改

### 总结

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)