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天相关推荐

  1. 数据分析学习笔记——数据可视化

    数据分析学习笔记系列--数据可视化 总第45篇 ▼ 写在前面: 本篇来源于书籍<数据之美-一本书学会可视化设计>的学习后整理所得.全篇主要围绕数据可视化的5个步骤展开,其中重点内容是第三步 ...

  2. Python数据分析学习笔记:使用SciKit-Learn进行数据规范化

    Python数据分析学习笔记:使用SciKit-Learn进行数据规范化 数据规范化是数据挖掘的一项基础工作.不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果 ...

  3. Python数据分析学习笔记:计算向量夹角

    Python数据分析学习笔记:计算向量夹角 通过计算两个向量夹角了解两个向量之间的相关性. # 计算向量夹角import numpy as npdef included_angle(a, b):a_n ...

  4. Python数据分析学习笔记:计算相关系数

    Python数据分析学习笔记:计算相关系数 1.相关系数概念 相关系数,或称线性相关系数.皮氏积矩相关系数(Pearson product-moment correlation coefficient ...

  5. Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

  6. python客户画像_Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

  7. 数据分析学习笔记-数据分析预备知识

    数据分析学习笔记 数据分析预备知识

  8. 数据分析学习笔记(二)数据分析三思维七技巧

    数据分析学习笔记(二) What 三种核心思维 结构化 公式化 业务化 Why 数据分析的思维技巧 象限法 多维法 假设法 指数法 二八法 对比法 漏斗法 总结 How 如何在业余时间锻炼分析能力 好 ...

  9. 大数据分析学习笔记(Z检验,分类器以及Association Rule)

    大数据分析学习笔记(Z检验,分类器以及Association Rule) Task 1 – Hypothesis Testing To improve student learning perform ...

  10. 数据分析学习笔记(四)Excel

    数据分析学习笔记(四)Excel 为什么要学习Excel Excel的学习路径1 Excel的必知必会 Excel的常见函数 什么是函数 常见函数 文本清洗函数 关联匹配函数 逻辑运算函数 计算统计函 ...

最新文章

  1. provide和inject,Vue父组件直接给孙子组件传值
  2. android media_rw sdcard_rw,大约Android 了解权限管理
  3. PPT怎么在线转视频?
  4. 数据分析入门_char01
  5. 具有Couchbase,Java EE和WildFly的CRUD Java应用程序
  6. HDU4911 Inversion 解题报告
  7. Windows服务的快速搭建与调试(C#图解)
  8. WinForm和WPF使用log4net
  9. hadoop jar包_Hadoop学习之路(5)Mapreduce程序完成wordcount
  10. go学习笔记-运算符
  11. TensorFlow中的compile和fit操作,简化神经网络模型代码
  12. pandavan路由器升级php到7,下载宝pandavan固件+H3C交换机单线复用问题讨论
  13. EViews8.0程序安装及注意事项
  14. 模拟电子线路设计 实验报告
  15. matlab符号函数sgn,latex 符号函数sgn
  16. ISO/IEC27000系列标准研究
  17. win7(32位)旗舰版共享HP1010打印机给WINXP专业版
  18. C#判断用户是否使用微信浏览器,并据此来显示真实内容或二维码
  19. 【zookeeper】Apache curator优点介绍
  20. 3GPP TS 23501-g51 中英文对照 | 4.2.1 General

热门文章

  1. 企业之家完成华为鲲鹏云服务兼容性认证
  2. 2019.6.7 一场搜索专题的考试【including 洛谷·血色先锋队,入门OJ·兴建高铁,珠光宝气阁
  3. 开发谷歌浏览器插件会上瘾,搞了一个JSONViewer,一个页面格式化多条JSON,提升工作效率...
  4. 菜鸟IT技术杂谈(一)——从多任务系统原理说起
  5. 2549. 【NOIP2011模拟9.4】家庭作业 (Standard IO)
  6. 基于php+MySQL电脑外设商城网站毕业设计源码271538
  7. 网络转型中的设备硬件形态选择初探
  8. 什么原因导致芯片短路_PCB电路板短路的原因及解决方法-EDA/PCB-与非网
  9. org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatt
  10. IntelliJ IDEA 解决控制台不能显示日志