一、python基本数据类型

  1,int,整数,主要用来进行数学运算

  2,bool,布尔类型,判断真假,True,False

  3,str,字符串,可以保存少量数据并进行相应的操作(未来使用频率最高的一种类型)

  4,list,列表,用来存储大量数据,用[]表示(里面可以存放各种数据类型)

  5,tuple,元组,不可以发生改变,用()表示

  6,dict,字典,保存键值对,{key : value}也可以保存大量数据

  7,set,集合,保存大量数据,不可以重复,其实就是不保存value的dict

二、整数(int)

在python3中所有的整数都是int类型,但在python2中如果数据量比较大,会使用long类型,在python3中不存在long类型。

整数可以进行的操作:bit_length() 计算整数在内存中占用的二进制码的长度(很少用)

十进制5转化成二进制是101,长度是3,如下:

  a = 5  # 5的二进制是101
  print(a.bit_length()) #

三、bool类型,取值只有True和False,bool值没有操作

转换问题:

  str => int      int(str)
  int => str str(int)   int => bool bool(int) 0是False,非0是True
  bool => int int(bool) True是1,False是0   str => bool bool(str) 空字符串是False,非空字符串是True
  bool => str str(bool) 把bool值转换成相应的"值",即字符串"True"或者"False"

结论:所有的空都是False,所有的非空都是True;例如:0,None,空字符串,空列表,空字典,空集合,空元组。

要想把某数据转换成xxx数据类型,则 xxx(数据) 即可;

补充:比较下面两个死循环

while 1:

print(“hello world!”)

while True:

print(“hello world!”)

  我们可以发现两者的区别是循环条件分别是1和True,我们通常用第一种。因为前者代码较后者更少,且计算机最底层认的是01,True需要转化成01,而1到了计算机底层也是1,所以前者比后者运行快那么一点点。

四、字符串(str)

把字符连成串,在python中用 ',",''',"""引起来的内容被称为字符串。

切记:字符串是不可变的对象,所以任何操作对原字符串是不会有任何影响的,每次操作都返回新字符串。

4.1 索引和切片

索引:索引就是下标,下标从0开始,使用[下标]可以获取到每一个字符,如下列代码示例:

  #     0123456 7 8
  s1 = "python最牛B"
  print(s1[0]) # 获取到p
  print(s1[1]) # 获取到y
  print(s1[2]) # 获取到t
  # print(s1[9]) # 没有9,越界了,会报 IndexError 的错误
  print(s1[-1]) # -1表示倒数第一个,即获取到B

  切片:我们可以使用下标来截取部分字符串的内容。

  语法:str[start:end]

  规则:顾头不顾尾,从start开始,截取到end位置,但不包括end,如下列代码示例:

  #     0123456 7 8
  s2 = "python最牛B"
  print(s2[0:3]) # 从下标为0获取到3,不包含3,结果为:pyt
  print(s2[6:9]) # 下标最大为8,但根据顾头不顾尾,想要取到最后一位必须给9,结果为:最牛B
  print(s2[6:10]) # 如果右边已经超过了最大值,则取到最后,结果为:最牛B
  print(s2[4:]) # 如果想获取到最后,那么end值可以不给,结果为:on最牛B
  print(s2[:-1]) # 从开始截取到最后,不包含最后一个,结果为:python最牛
  print(s2[:]) # 从头取到尾,结果为:python最牛B
  print(s2[-1:-5])# 取不到任何结果,因为默认应该从左往右截取
  print(s2[-5:-1])# 从倒数第5个字符开始向右截取到倒数第1个字符,结果为:on最牛

  通过上边知道切片默认是从左向右截取,我们可以给出第三个参数来控制方向,第三个参数叫步长,步长为负数时,则从右往左取值。

  语法:str[start:end:step]

start : 起始位置

end : 结束位置

step : 步长(步长如果是整数,则从左往右取,如果是负数,则从右往左取,默认是1)

  如下列代码示例:

  #     0123456 7 8
  s3 = "python最牛B"
  print(s3[1:5:2]) # 从下标为1的字符开始,取到下标为5(且不包含下标为5的值),每两个取1个,结果为yh
  print(s3[:5:2]) # 从开始取到下标为5的字符,每两个取1个,结果为:pto
  print(s3[4::2]) # 从下标为4的字符取到最后一个字符(包含最后一个字符),每两个取1个,结果为:o最B
  print(s3[-5::2]) # 从倒数第5个取到最后,每两个取1个,结果为:o最B
  print(s3[-1:-5]) # 取不到结果,因为默认是从左向右截取
  print(s3[-1:-5:-1])# 步长为负数,表示从右往左取值,结果为:B牛最n
  print(s3[-5::-3]) # 步长为-3,从倒数第5个开始,从右往前,取到最开始的字符(包含第一个),每3个取1个,结果为:oy
4.2 字符串的相关操作方法

s1.capitalize()      # 首字母大写,其他字母都变成小写

s1.lower()            # 全部转换成小写

s1.upper()            # 全部转换成大写,记住!!!

s1.swapcase()     # 大小写互相转换

s1.casefold()       # 转换成小写,和lower相比,casefold()对所有字母都有效,比如东欧的一些字母

s1.title()              # 每个被非字母字符隔开的单词首字母大写

s1.center()         # 居中,

    示例:s5 = “周杰伦”

      ret = s5.center(10 , “*”)

s1.expandtabs()   # 改变\t的长度,更改为8

s1.strip()              # 去掉字符串左右两端空格(还有换行符\n,缩进\t),也可以加参数去掉指定的元素,记住!!!

s1.lstrip()             # 去掉字符串左边空格

s1.rstrip()             # 去掉字符串右边空格

s1.replace(“原字符”,“新字符”)  # 将原字符替换成新字符,也可以再加一个参数指定替换几个,记住!!!

s1.split()              # 字符串按照指定字符切割(注意:如果切割符在左右两端,则切完一定出现空字符串),还可以跟第二个参数,表示根据第几个指定字符分割,记住!!!

  注意:split默认是按照空白切割!具体示例如下:

    a = "al    ex  ha  nishi shui"
lst = a.split()
print(lst)
# 结果为:['al', 'ex', 'ha', 'nishi', 'shui']
4.3 格式化输出
  s12 = "我叫%s,今年%s岁了,我喜欢%s" % ('sylar', 18, '周杰伦')  # 之前的写法
  s13 = "我叫{},今年{}岁了,我喜欢{}".format('周杰伦', 28, '周润发') # 按位置格式化
  s14 = "我叫{0},今年{2}岁了,我喜欢{1}".format('周杰伦', '周润发', 28) # 指定位置
  s15 = "我叫{name},今年{age}岁了,我喜欢{singer}".format(name='周杰伦', singer='周润发', age=28) # 指定关键字
4.4 查找

s13.startswith()  # 是否以指定字符开头,记住!!!

s13.endswith()   # 是否以指定字符结尾,记住!!!

s13.count()        # 查找指定字符在字符串中出现的次数

s13.find()          # 查找指定字符的索引,若没有所查找字符,则返回-1

s13.index()       # 求指定字符索引,注意:若找不到,程序会报错

4.5 条件判断

  s14.isalnum()      # 是否由字母和数字组成

  s14.isalpha()      # 是否由字母组成(包括汉字)

  s14.isdigit()        # 是否由数字组成,不包括小数点

  s14.isdecimal()  # 这个比较牛,中文数字也能识别

  s14.islower()      # 是否是小写字母

  s14.isupper()      # 是否是大写字母

4.6 计算字符串长度示例
  s18 = "我是你的眼,我也是a"
  print(len(s18)) #
4.7 迭代

我们可以使用for循环来遍历(获取)字符串中的每一个字符。

语法:

    for 变量 in 可迭代对象 :

pass(也存在break和continue)  

    else:

当循环正常结束的时候会执行

可迭代对象:可以一个一个往外取值的对象。

python数据类型一(重点是字符串的各种操作)的更多相关文章

  1. python 数据类型一 (重点是字符串的各种操作)

    一.python基本数据类型 1,int,整数,主要用来进行数学运算 2,bool,布尔类型,判断真假,True,False 3,str,字符串,可以保存少量数据并进行相应的操作(未来使用频率最高的一 ...

  2. 4. Python数据类型之数字、字符串、列表

    开发过程中,我们需要处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.在Python中,能够直接处理的数据类型主要有以下几种:数字.字符串.列表.元组.字典.集合等 ...

  3. Python数据类型(数字和字符串)

    1.1 Number(数字) Python可以处理任意大的整数,包括负整数. 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的.,比如,\(1.23\ti ...

  4. Python数据类型深入学习之字符串

    一. Python字符串 1. 下面来看一下python中常见字符串常量和表达式: Python中用来编写字符串的方法有以下几种: (1) 单引号:'speade' (2) 双引号:"spe ...

  5. python数据类型内置方法 字符串和列表

    1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...

  6. python数据类型之String(字符串)

    String(字符串) 1.概述 ​ 字符串是以单引号或双引号括起来的任意文本,比如"abc",'xy'等等,请注意''或者""本身只是一种表示方式,并不是字符 ...

  7. Java 常用知识点汇总(数据类型之间转换、字符串的相关操作-截取、转换大小写等)

    1.Java四类八种数据类型 byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围- ...

  8. Python学习总结4:字符串常量与操作汇总

    参考博客:http://www.cnblogs.com/Camilo/archive/2013/09/21/3332267.html http://www.cnblogs.com/SunWentao/ ...

  9. Python学习笔记 (2) :字符串输出、操作、格式化和日期、时间格式化

    一.字符串输出及运算 1.常用输出格式及方法 ')#单引号 ")#双引号 """)#三个引号 1234567890 1234567890 1234567890 ...

随机推荐

  1. matplotlib之legend

    在<matplotlib极坐标系应用之雷达图> 中,我们提出了这个问题“图例中每种成员的颜色是怎样和极坐标相应的成员的颜色相对应的呢”,那么接下来我们说说legend的一般使用和设置. 调 ...

  2. ArrayList 和 HashMap 的默认大小是多数?

    ArrayList 和 HashMap 的默认大小是多数? 在 Java 7 中,ArrayList 的默认大小是 10 个元素,HashMap 的默认大小是16个元素(必须是2的幂).这就是 Jav ...

  3. BootCamp支持软件6

    最新版本的 Boot Camp 6 苹果驱动支持的机型列表 苹果官方已经公布了 BootCamp 6 驱动支持的机型列表了,基本上 2012 年后的 Macbook / Pro / Air / iMa ...

  4. C#关键字之Partial详解

    Partial是局部类型的标志.局部类型可以实现将一个类.结构或接口分成几个部分,分别放在在几个不同的.cs文件中(当然也可以放在同一个.cs文件中).在程序进行编译之后,将会合并成一个完整的类.因此 ...

  5. hive 字符集问题 报错 Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:For direct MetaStore DB connections,

    学习hive 使用mysql作为元数据  hive创建数据库和切换数据库都是可以的 但是创建表就是出问题 百度之后发现 是编码问题 特别记录一下~~~ 1.报错前如图: 2.在mysql数据库中执行如 ...

  6. [转]jna模拟指针开辟空间,数组首地址获取值

    http://blog.csdn.net/zhuzhichao0201/article/details/5817819 不是很明白,先记在这里 ———————————————————————————— ...

  7. "回车"(carriage return)和"换行"(line feed)

    “回车”(carriage return)和“换行”(line feed)这两个概念的来历: 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10 ...

  8. 嵌入式开发之示波器----tektronix tds2024 的使用

    http://jingyan.baidu.com/article/91f5db1bf715c01c7f05e39a.html http://cn.tek.com/learning/oscillosco ...

  9. 数据挖据之GeoHash核心原理解析

    引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西.某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐. 饭饱之后机机 ...

  10. java web 运动前端

    [写在前面的话:]前不久刚看到过一句话:说好的技术文章应该让读者感觉增加信心,而不是失去信心.有感于这句话是因为以前觉得发一些貌似高深的,看起来nb的东西才算一篇好博文,可是多少有点炫技的成分.可是后 ...