数据分析学习笔记——第4天
Python的字符串是不能变的
要想改变,只能建个新的。
1.字符串的编码
使用的是Unicode,可以表示所有文字。(较ASCII多得多)
>>> chr(88)
'X'
>>> ord('梁')
26753
>>> ord('谦')
35878
2.引号创建字符串
单引号或者双引号
三个单引号或者双引号可以打多个或者多行
>>> a='''name='空空',b is "haha
55
121"'''
>>> a
'name=\'空空\',b is "haha\n55\n121"'
\是一个转义字符
\所谓转义是指后面跟着的字符是有本身意义的。
3.空字符串和len()函数
允许有空的字符串:
汉字与英文占同样的长度
>>> len('abc视频集')
6
4.转义字符
>>> a='I\nlove\nU'
>>> a
'I\nlove\nU'
>>> print(a)
I
love
U
>>> b='I'm a teacher'
SyntaxError: invalid syntax
>>> b='I\'m a teacher'
>>> b
"I'm a teacher"
>>> print('aa\
aaaadfdsf')
aaaaaadfdsf
5.字符串拼接
>>> a='adb'+'9999'
>>> a
'adb9999'
6.字符串的复制
>>> a='aabb'*3
>>> a
'aabbaabbaabb'
7.不换行打印
print('aa',end=' ')
print('bb',end='\n')
print('cc',end='*')
end为以什么结尾
8.从控制台读取字符串
>>> n=input('输入数字')
输入数字11111
>>> n
'11111'
9.str()实现数字转型为字符串
>>> str(5.2)
'5.2'
>>> str(4.14e3)
'4140.0'
>>> str(True)
'True'
10.使用[]提取字符串
正向搜索:0,1,。。。。len(str)-1
反射搜索:-1,-2。。。。。。-len(str)
>>> a='abcdefghijk'
>>> a[0]
'a'
>>> a[4]
'e'
>>> a[-2]
'j'
>>> len(a)
11
>>> a[-11]
'a'
>>> a[-12]
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
a[-12]
IndexError: string index out of range
11.replace()实现字符串替换
字符串不能改变
replace()生成一个新的对象
>>> a='abcdefghcijkcc'
>>> a.replace('c',88)
Traceback (most recent call last):
File "<pyshell#30>", line 1, in <module>
a.replace('c',88)
TypeError: replace() argument 2 must be str, not int
>>> a.replace('c','88')
'ab88defgh88ijk8888'
>>> a
'abcdefghcijkcc'
:
>>> a= a.replace('c','88')
>>> a
'ab88defgh88ijk8888'
>>>
12.字符串切片slice操作
截取字符串
包头不包尾
>>> a
'ab88defgh88ijk8888'
>>> a[1:5]
'b88d'
>>> a[1:5:2]
'b8'
>>> a[::-2]
'88ki8ge8b'
>>> a[::-1]
'8888kji88hgfed88ba'
步长是负数,则是倒着来。N时则是隔N-1个
13.split()分割和join()合并
默认是空格
>>> a='to be or not to be'
>>> a.split()
['to', 'be', 'or', 'not', 'to', 'be']
>>> a.split('to')
['', ' be or not ', ' be']
>>> a=['sxt','sxt100','sxt200']
>>> '*'.join(a)
'sxt*sxt100*sxt200'
>>> ''.join(a)
'sxtsxt100sxt200'xt100*sxt200'
>>> ''.join(a)
'sxtsxt100sxt200'
join效率高。因为列表可改变,而字符串不能改变
用'+'运算时间:0.3431096076965332
用join运算时间:0.06286454200744629
用'+'运算时间比用join运算时间长,是因为在此例是,前者生成了1百万个对象
import time
time01=time.time()#此时开始时刻
a=''
for i in range(1000000):
a+='sxt'
time02=time.time()#结束时刻
print('用\'+\'运算时间:'+str(time02-time01))
li=[]#定义一个列表,做同样功能
time03=time.time()#此时开始时刻
for i in range(1000000):
li.append('sxt')#append为屁股后面加元素
time04=time.time()#结束时刻
print('用join运算时间:'+str(time04-time03))
print('用\'+\'运算时间比用join运算时间长,是因为在此例是,前者生成了1百万个对象')
服务器中要避免第一种,也就是字符串的自加。
14.字符串驻留机制和字符串比较机制
>>> a='abc_33'
>>> b='abc_33'
>>> a is b
True
>>> id(a)
2144036216880
>>> id(b)
2144036216880
>>> c='33#'
>>> d='33#'
>>> c is d
False
>>> id(c)
2144036237616
>>> id(d)
2144036237360
也就是符合变量命名规则的才可以
产生的新对象和肯定和值相对的对象不是一个东西,所以用is是False
15.常用查找方法
>>> a='我是高淇,今年18岁了,我在北京尚学堂科技上班。我的儿子叫高洛希,他6岁了。我是一个编程教育的普及者,希望影响6000万学习编程的中国人。我儿子现在也开始学习编程,希望他18岁的时候可以超过我""'
>>> len(a)
98
>>> a.startwith('我是高')
Traceback (most recent call last):
File "<pyshell#60>", line 1, in <module>
a.startwith('我是高')
AttributeError: 'str' object has no attribute 'startwith'
>>> a.startswith('我是高')
True
>>> a.endswith('我')
False
>>> a.endswith('\"')
True
>>> a.find('高')
2
>>> a.rfind('高')
29
>>> a.count('编程')
16.去除首尾的信息
>>> ' sxt100 '.strip()
'sxt100'
>>> '****sxt100*'.strip('*')
'sxt100'
>>> '****sxt100*'.lstrip('*')
'sxt100*'
17.大小写转换
18.格式排版
>>> a='sxt'
>>> a.center(11,'*')
'****sxt****'
>>> a.center(11)
' sxt
默认为空格
19.其他方法
在unicode中,汉字也是字母处理
20.字符串格式化
format()基本用法
format函数可以接受不限个参数,位置可以不按顺序
用0,1,作占位符时,要按顺序;但如果是按变量名,则不用按顺序
>>> a='名字是:{0},年龄是{1},{0}是一个好同学'
>>> c=a.format('高淇',18)
>>> c
'名字是:高淇,年龄是18,高淇是一个好同学'
>>> b='名字是:{name},年龄是{age},{name}是一个好同学'
>>> c=b.format('高淇',18)
Traceback (most recent call last):
File "<pyshell#95>", line 1, in <module>
c=b.format('高淇',18)
KeyError: 'name'
>>> c=b.format(name='高淇',age=18)
>>> c
'名字是:高淇,年龄是18,高淇是一个好同学'
占位符如果是数字0开始,如果是用名称,在引用的时候,要指定名称
21.填充与对齐
填充与对齐经常一起使用
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
>>> '{:*>8}'.format('245')
'*****245'
>>> '我是{0},我喜欢的数字是{1:*^10}'.format('高淇',666)
'我是高淇,我喜欢的数字是***666****'
22.数字格式化
>>> a='我是{0},我的存款有{1:,2f}'
>>> a.format('高淇',6868.2232323)
Traceback (most recent call last):
File "<pyshell#107>", line 1, in <module>
a.format('高淇',6868.2232323)
ValueError: Invalid format specifier
>>> a='我是{0},我的存款有{1:.2f}'
>>> a.format('高淇',6868.2232323)
'我是高淇,我的存款有6868.22'
{1:.2f}:1是点位,.2是指两位小数
>>> '{:0>10d}'.format(8)
'0000000008'
>>> '{:0>10d}'.format(1086)
'0000001086'
>>> '{:*>10d}'.format(1086)
'******1086'
>>> '{:*>10f}'.format(1086)
'1086.000000'
作业:
1.(5+10x)/5-13*(y-1)(a+b)/x+9*(5/x+(12+x)/y)
2.
a=input('输入月薪:')
print('你的年薪是:'+str(12*int(a)))
3.
a='我爱你一百遍'
for i in range(100):
print(a+'\n')
4.
>>> a='to be or not to be'
>>> a[::-1]
'eb ot ton ro eb ot'
5.
a is b 输出true;
c is d 输出false
字符串驻留机制只适用于符合命名规范的值
6.
'名字是高淇,年龄是19'
数据分析学习笔记——第4天相关推荐
- 数据分析学习笔记——数据可视化
数据分析学习笔记系列--数据可视化 总第45篇 ▼ 写在前面: 本篇来源于书籍<数据之美-一本书学会可视化设计>的学习后整理所得.全篇主要围绕数据可视化的5个步骤展开,其中重点内容是第三步 ...
- Python数据分析学习笔记:使用SciKit-Learn进行数据规范化
Python数据分析学习笔记:使用SciKit-Learn进行数据规范化 数据规范化是数据挖掘的一项基础工作.不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果 ...
- Python数据分析学习笔记:计算向量夹角
Python数据分析学习笔记:计算向量夹角 通过计算两个向量夹角了解两个向量之间的相关性. # 计算向量夹角import numpy as npdef included_angle(a, b):a_n ...
- Python数据分析学习笔记:计算相关系数
Python数据分析学习笔记:计算相关系数 1.相关系数概念 相关系数,或称线性相关系数.皮氏积矩相关系数(Pearson product-moment correlation coefficient ...
- Python数据分析学习笔记05:用户画像
Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...
- python客户画像_Python数据分析学习笔记05:用户画像
Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...
- 数据分析学习笔记-数据分析预备知识
数据分析学习笔记 数据分析预备知识
- 数据分析学习笔记(二)数据分析三思维七技巧
数据分析学习笔记(二) What 三种核心思维 结构化 公式化 业务化 Why 数据分析的思维技巧 象限法 多维法 假设法 指数法 二八法 对比法 漏斗法 总结 How 如何在业余时间锻炼分析能力 好 ...
- 大数据分析学习笔记(Z检验,分类器以及Association Rule)
大数据分析学习笔记(Z检验,分类器以及Association Rule) Task 1 – Hypothesis Testing To improve student learning perform ...
- 数据分析学习笔记(四)Excel
数据分析学习笔记(四)Excel 为什么要学习Excel Excel的学习路径1 Excel的必知必会 Excel的常见函数 什么是函数 常见函数 文本清洗函数 关联匹配函数 逻辑运算函数 计算统计函 ...
最新文章
- provide和inject,Vue父组件直接给孙子组件传值
- android media_rw sdcard_rw,大约Android 了解权限管理
- PPT怎么在线转视频?
- 数据分析入门_char01
- 具有Couchbase,Java EE和WildFly的CRUD Java应用程序
- HDU4911 Inversion 解题报告
- Windows服务的快速搭建与调试(C#图解)
- WinForm和WPF使用log4net
- hadoop jar包_Hadoop学习之路(5)Mapreduce程序完成wordcount
- go学习笔记-运算符
- TensorFlow中的compile和fit操作,简化神经网络模型代码
- pandavan路由器升级php到7,下载宝pandavan固件+H3C交换机单线复用问题讨论
- EViews8.0程序安装及注意事项
- 模拟电子线路设计 实验报告
- matlab符号函数sgn,latex 符号函数sgn
- ISO/IEC27000系列标准研究
- win7(32位)旗舰版共享HP1010打印机给WINXP专业版
- C#判断用户是否使用微信浏览器,并据此来显示真实内容或二维码
- 【zookeeper】Apache curator优点介绍
- 3GPP TS 23501-g51 中英文对照 | 4.2.1 General
热门文章
- 企业之家完成华为鲲鹏云服务兼容性认证
- 2019.6.7 一场搜索专题的考试【including 洛谷·血色先锋队,入门OJ·兴建高铁,珠光宝气阁
- 开发谷歌浏览器插件会上瘾,搞了一个JSONViewer,一个页面格式化多条JSON,提升工作效率...
- 菜鸟IT技术杂谈(一)——从多任务系统原理说起
- 2549. 【NOIP2011模拟9.4】家庭作业 (Standard IO)
- 基于php+MySQL电脑外设商城网站毕业设计源码271538
- 网络转型中的设备硬件形态选择初探
- 什么原因导致芯片短路_PCB电路板短路的原因及解决方法-EDA/PCB-与非网
- org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatt
- IntelliJ IDEA 解决控制台不能显示日志