第七章

今日内容

  • 基础数据类型补充

  • 以后会遇到的坑

  • 二次编码

基础类型补充

str
a = "One two"
print(a.capitalize())   # 首字母大写
print(a.title())       # 每个单词首字母大写
print(a.swapcase())     # 大小写转换
print(a.center(20,"=")) # 居中 - 填充
print(a.find("c"))       # 查找 通过元素查找索引,查找不到时返回-1
print(a.index("c"))       # 查找 通过元素查找索引,查找不到时就报错
print("_".join(["1","2","4"])) # 拼接,将列表转换成字符串
str + str
str * 5
#字符串进行加操作,乘操作都是开辟新的空间
list
# 列表的一种定义方法
print(list('123445'))
# 列表的方法:
lst = [1,23,4,5,7,8,9]
print(lst.index(4))       # 通过元素查找索引
lst.sort()                 # 排序 默认是升序
lst.sort(reverse=True)     # 降序

lst.reverse() #将源数据进行反转
print(lst)

lst = [1,5,7,9,4,23,546,78]
lst1 = lst[::-1] #不修改源数据进行反转
dict
dic = {"key":1,"key1":2,"key2":4,"key3":1}
print(dic.popitem())   # 随机删除 python3.6版删除最后一个键值对
#popitem返回的是被删除的键值对
print(dic)

dic = {}
dic = dic.fromkeys("abc",[])
print(dic)
dic["b"] = 11
dic["a"].append(10)
print(dic)

运行结果:
{'a': [], 'b': [], 'c': []}
{'a': [10], 'b': 11, 'c': [10]}

fromkeys 第一个参数必须是可迭代对象,会将可迭代对象进行迭代,成为字典的键.第二个参数是值(这个值是共用的)
fromkeys 共用的值是可变数据类型就会有坑,不可变数据类型就没事
基础数据类型总结:
可变,不可变,有序,无序
1.可变:
    list
    dict
    set
2.不可变:
int
  str
  bool
  tuple
3.有序:
  list
    tuple
    str
4.无序:
    dict
    set
取值方式:

  1.索引
      list
      tuple
      str
   
  2.键
      dict
   
  3.直接
      int
      bool
      set

数据类型转换
str -- int
int -- str
str -- bool
bool -- str
int -- bool
bool -- int
重要: *****
list -- str
lst = ["1","2","3"]
print("".join(lst))

str -- list
s = "alex wusir 太白"
print(s.split())

目前字典转换,自己实现方法
重点
重点:
find
join
列表乘法
元组(1,)
list -- str
str -- list

以后会遇到的坑

  • 死循环

lst = [1,2,3]
for i in lst:
lst.append(4)
  • 用for循环删除所有元素

# 错误示范
lst = [11,22,33,44]
for i in lst:
lst.remove(i)
print(lst) # 正确代码
lst = [11,22,33,44]
for i in range(len(lst)):
del lst[-1]
print(lst) for i in range(len(lst)):
lst.pop()
print(lst) # 创建一个浅拷贝的列表,循环它的次数,删除源数据的数据
lst = [11,22,33,44]
lst1 = lst[:]
for i in lst1:
lst.remove(i)
print(lst)

使用for循环清空列表元素内容 1.从后向前删除, 2.创建一个新的容器,循环新的容器删除旧的容器内容

面试题:
lst = [1,[2]]
lst[1] = lst
print(lst) 答案: [1, [...]]
字典和集合
dic = {"key":1,"key1":2}

for i in dic:
if i == "key1":
dic[i] = dic[i] + 8 # dic[i] = 10
else:
print("没有这个键!")
print(dic) 字典和集合在遍历(循环)时不能修改原来的大小(字典的长度),可以进行修改值
# 以下会报错 s = {1,2,3,4,5,6}
for i in s:
s.pop()
print(s)

Set changed size during iteration

二次编码

必会
# python3: 默认编码unicode
# pyhton2:默认编码ascii,不支持中文

以后会遇到的坑

二次编码

PythonDay07的更多相关文章

  1. Python--day07(数据类型转换、字符编码)

    昨天内容回顾 1.  深浅拷贝: 值拷贝:直接赋值,原列表中任何值发生改变,新列表的值都会发生改变. 浅拷贝:通过copy()方法,原列表中存放值的地址没有发生改变,但内部的值发生改变,新列表也随之改 ...

随机推荐

  1. Trie树简介

    Trie树, 即字典树, 又称单词查找树或键树, 多叉树 基本性质 根节点不包含字符,除根节点外每一个节点都只包含一个字符 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串 每个节点 ...

  2. node.js入门学习(二)MIME模块,request和response对象,demo之不同url请求不同html页面,页面包含图片、样式css等静态资源

    一.构建http服务程序-根据不同请求做出不同响应 // 加载http模块 var http = require("http"); // 创建一个http服务对象 http.cre ...

  3. jquery扩展方法(表单数据格式化为json对象)

    1.jquery扩展方法(表单数据格式化为json对象) <script type="text/javascript"> // 将表单数据序列化为一个json对象,例如 ...

  4. pandas读取大文件时memoryerror的解决办法

    再用pd.read_csv读取大文件时,如果文件太大,会出现memoryerror的问题. 解决办法一:pd.read_csv的参数中有一个chunksize参数,为其赋值后,返回一个可迭代对象Tex ...

  5. java复制项目中的补丁,完整的包路径

    package com.bytter.audit.iface.util; import java.io.BufferedInputStream; import java.io.BufferedOutp ...

  6. sqli-labs(23)

    基于get的过滤了的注入 0X1测试闭合 /?id=' http://127.0.0.1/sql1/Less-23/?id=1%27%27 0X02 然后就是组合拳的操作了 未报错 那么应该是’闭合 ...

  7. jQuery easyui datagrid 的数据加载

        其实easyuidatagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数据:另一种是加载js对象,也就是使用loadDate方法,这种方法用于加载本地js数据(非ur ...

  8. JavaScript-Load-Image

    如何将图片显示为canvas https://github.com/blueimp/JavaScript-Load-Image/blob/master/js/load-image-scale.js h ...

  9. day66—angularJS学习笔记-表达式

    转行学开发,代码100天——2018-05-21 angular的变量数据初始化: ng-init="quantity=1;cost=30;student={firstName:'李',la ...

  10. 安装mysql出现Couldn't find MySQL server (/usr/bin/mysqld_safe)

    安装mysql出现Couldn't find MySQL server (/usr/bin/mysqld_safe)Starting MySQL ERROR! Couldn't find MySQL ...