PythonDay07
第七章
今日内容
基础数据类型补充
以后会遇到的坑
二次编码
基础类型补充
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的更多相关文章
- Python--day07(数据类型转换、字符编码)
昨天内容回顾 1. 深浅拷贝: 值拷贝:直接赋值,原列表中任何值发生改变,新列表的值都会发生改变. 浅拷贝:通过copy()方法,原列表中存放值的地址没有发生改变,但内部的值发生改变,新列表也随之改 ...
随机推荐
- “_MSC_VER”的不匹配项
近些年来vs更新步伐加快,深刻的感受到了技术成长学习的重要性. 另一方面,版本的更换,也带来了许多的问题.今天用2019打开以前2010的工程时就碰到了一个: 检测到“_MSC_VER”的不匹配项: ...
- Linux 查看内存(free)、释放内存(基本操作)
原文链接:http://blog.51cto.com/11495268/2384147 1.简介 1.1 介绍 很多时候,服务器 负载 很高(执行操作 很慢),很多 原因 造成 这种 现象(内存不足 ...
- #424 Div2 Problem C Jury Marks (二分 && 暴力 && std::unique && 思维)
题目链接 :http://codeforces.com/contest/831/problem/C 题意 :选手有一个初始积分,接下来有k个裁判为他加分或减分(时间顺序给出),然后告诉你n(1< ...
- golang rabbitmq实践 (一 rabbitmq配置)
1:环境选择 系统为ubuntu 15.04 ,我装在虚拟机里面的 2:rabbitmq tabbitmq 3.5.4 download url : http://www.rabbitmq.com/ ...
- Algorithm lesson final exam
1.algorithm analysis O B/W/AV/AMOR,混入其他问题,设计+分析 2.传统算法(肯定要考) 1)divide and conquer master therem. rec ...
- selenium+键盘鼠标
一.简单操作 1.点击(鼠标左键)页面按钮:click() 2.请空输入框:clear() 3.输入字符串:send_keys() 二.模拟键盘 模拟键盘的操作需要先导入键盘模块:from selen ...
- EMC存储同时分配空间到两台LINUX服务器路径不一致导致双机盘符大小不一致
操作系统:Centos linux6.6 当我们从EMC存储上划分空间同时分配给两台或者多台服务器上时,有的时候会出现在服务器上所生成的磁盘路径是不一致的,这样就会导致盘符名称不一致或者是盘符对应的大 ...
- 同一个tomcat部署多个项目11
在开发项目中,有时候我们需要在同一个tomcat中部署多个项目,小编之前也是遇到了这样的情况,碰过不少的壁,故整理总结如下,以供大家参考.(以Linux为例,其他系统同样适用) 一.首先将需要部署的项 ...
- spring cloud:服务网关 Spring Cloud GateWay 入门
Spring 官方最终还是按捺不住推出了自己的网关组件:Spring Cloud Gateway ,相比之前我们使用的 Zuul(1.x) 它有哪些优势呢?Zuul(1.x) 基于 Servlet,使 ...
- MVC的一个简单实例
基本思路: 一个Regist.jsp注册页面,用于收集用户信息,发送请求给控制器Servlet:控制器层Servlet封装模型层对象 jBean,并调用其方法regiser实现用户信息的保存:模型层J ...