一,数字

  1,int 将字符串转化成数字

  a = '123'

  b=int(a)

  b=123

  2,以进制方式进行转换

  num="a"

  >>> num = "a"

  >>> int (num,base=16)

  10

  默认base为10不需要加

  3,bit_length 当前是数字的二进制位数

  >>> age = 3
  >>> age.bit_length()
  2
  >>> age = 8
  >>> age.bit_length()
  4

PS:在python3里不管数字多大都是int类型

二,字符串

  1,capitalize首字母大写

  >>> test="zhangsan"
  >>> test.capitalize()
  'Zhangsan'

  2,casefold,lower把大写变成小写 casefold很多未知的对应关系也适用

  >>> test="ZHANGSAN"

  >>> test.casefold()

  'zhangsan'

  3,center最少多少个字符,不够字符使用空格代替,也可以使用其他符号代替空格

  >>> test.center(8)

  'ZHANGSAN'
  >>> test.center(9)
  ' ZHANGSAN'
  >>> test.center(10)
  ' ZHANGSAN '
  >>> test.center(11)
  ' ZHANGSAN '

  >>> test.center(10,'*')

  '*ZHANGSAN*'

  4,count计算子序列在字符串中出现的次数,可以加数字代表从第几位开始寻找

  >>> test.count('Z')

  1

  5,endswith判断是否已上门结尾 startswith

  >>> test.endswith('a')

  False

  >>> test.endswith('N')
  True

  6,find从开始往后找,找到以后获取位置号(以0开始)

  >>> test.find('H')

  1

  >>> test.find('A')

  2

  7,format字符串格式化,将字符串中的占位符替换成指定的值

  >>> test = 'i am {name}'
  >>> test.format(name='zhangsan')
  'i am zhangsan'

  

  >>> test = 'i am {0},age={1}'
  >>> test.format('zhangsan',19)
  'i am zhangsan,age=19'

  8,format_map以字典方式格式

  >>> test
  'i am {name}'
  >>> test.format_map({"name":"zhangshan"})
  'i am zhangshan'

  9.index 功能类似于find如果与find不同的是如果没有找到直接报错

  10,isalnum判断字符串是否只是包含字母和数字

  >>> 'asd'.isalnum()
  True
  >>> 'asd_+'.isalnum()
  False

  10,expandtabs以指定的数为分割数遇到tab使用分割的数用空格补齐

  test = "12345678\t9"

  1.   v = test.expandtabs(6)
      print(v,len(v))
      12345678    9 13
      说明:以6个单位分割123456为一组,78遇到tab了使用空格补齐4 然后是9总长度是13,用途产生一个对齐的表格
       vim day10-3.py
      
  1. test = "username\tmail\tpassword\nlaiying\tying@qq.com\t123\nlaiying\tying@qq.com\t123\nlaiying\tying@qq.com\t123"
  2. v = test.expandtabs()
  3. print(v)
  1.  

  

  \n是换行因为所有对应的字符串长度不超过20使用该方法生成一个对齐的表格

  11,isalpha判断是否是字母,如果全是字母返回True如果包含数字或者其他字符返回False

  12,isdecimal 和isdigit判断是否为数字

  1.   test = "111"
      v1 = test.isdecimal()
      v2 = test.isdigit()
      print(v1,v2)

   isdigit可以识别非纯数字例如②③这样的

  13,isidentifier判断字符串是否是合法的标识符,如果是是数字字母下划线但是不能以数字开头的字符串及为True否则为False

  14,islower是否全是小写

  15,isnumeric判断是否是数字支持中文的

  1.  test = "二"
  2.   v1 = test.isdecimal()
  3.   v2 = test.isdigit()
  4.   v3 = test.isnumeric()
  5.   print(v1,v2,v3)
  6.   False False True

  16,isprintable 判断是否存在不可显示的字符 如果里面是全字符不包含\t \n等则返回True否则返回False

  17,isspace是否为空格如果是全部空格或者为空返回True否则返回False

  18,istitle判断是否为标题,全部首字母为大写就认为是标题,不支持中文

  1. test ="I Love You"
  2. v =test.istitle()
  3. print(v)
    True

  19,join(重要)将字符串中的每一个元素安装指定分隔符进行拼接,join在内部循环字符串一个个拿到然后加入对应的字符

  1. test ="我爱北京天安门"
  2. t = '*'
  3. v = t.join(test)
  4. print(v)
    我*爱*北*京*天*安*门
  1.  

  20,ljust和rjust使用指定字符填充一个是把原字符串放左边一个是把原字符串放右边

  1. test ="zhangsan"
  2. v1 = test.ljust(20,"*")
  3. v2 = test.rjust(20,"*")
  4. print(v1,v2)
  5.  
  6. zhangsan************ ************zhangsan

  21,lstrip,rstrip,strip(重要)去除字符串里面左边,右边,所有的空格,可以去除制表符换行的空格,默认是去除空格也可以加参数去掉对应的字符,优先最多匹配

  1. test ="xxzhangsan "
  2. v1 = test.lstrip('x')
  3. print(v1)
  4. zhangsan

  22,maketrans按照对应关系进行替换

  1. v = "wo ai ni "
  2. m = str.maketrans("aeiou","12345")
  3. new_v = v.translate(m)
  4. print(new_v)
  5.  
  6. w4 13 n3

  23,partition,rpartition使用指定的字符或者字符串分割成三分形成元祖,只能分成三段,r代表从右往左

  1. test ="testasdsddfg"
  2. v1 = test.partition('s')
  3. v2 = test.rpartition('s')
  4. print(v1,v2)
  5.  
  6. ('testasdsddfg', '', '') ('testasd', 's', 'ddfg')

  24,split使用指定字符或者字符串分割字符串形成列表,但是不包含这个字符本身,可以加参数分割几次

  1. test ="testasdsddfg"
  2. v1 = test.partition('s')
  3. v2 = test.rpartition('s')
  4. v3 = test.split('s')
  5. print(v1,v2,v3)
  6.  
  7. ('te', 's', 'tasdsddfg') ('testasd', 's', 'ddfg') ['te', 'ta', 'd', 'ddfg']

  25,splitlines使用换行符分割,加参数True转换的包含换行符\n False去掉换行符

  1. test ="testasdsddfg\nasjdg\nakjshd"
  2. v = test.splitlines()
  3.  
  4. ['testasdsddfg', 'asjdg', 'akjshd']

  

  1. test ="testasdsddfg\nasjdg\nakjshd"
  2. v = test.splitlines(True)
  3. print(v)
  4.  
  5. ['testasdsddfg\n', 'asjdg\n', 'akjshd']

  26,startwith,endwith判断字符串是否以什么开头或者以什么结尾

  1. test ="backend 1.1.1."
  2. v = test.startswith('a')
  3. print(v)
  4.  
  5. False

  27,swapcase大小写互相转换

  1. test ="I Love U"
  2. v = test.swapcase()
  3. print(v)
  4.  
  5. i lOVE u

  28,title把一串字符串转换成标题,及首字母大写

  1. test ="who are U"
  2. v = test.title()
  3. print(v)
  4.  
  5. Who Are U

  29,replace把指定字符串替换成指定字符串

  1. test = 'abcd'
  2. v = test.replace("a","b")
  3. print(v)
  4.  
  5. bbcd

  

七个重要的

join split find strip upper lower replace

  

  字符串的索引或者下标,获取字符串中的某一个字符

  索引是以0开始的,如果需要取一串可以使用类似0:2这种索引方式 -1代表最后一位

  1. test = "abcd"
  2. v1 = test[0]
  3. v2 = test[0:2]
  4. v3 = test[0:-1]
  5. print(v1,v2,v3)
  6.  
  7. a ab abc

  

  len取字符串的长度(python3支持中文python2.7取的不准确)len可以计算列表计算的是以逗号分隔的个数

  range生成一段顺序数字,python2和python3不同,在2里面直接生成一串在3里面不创建,只有在使用循环的时候才创建

  python2

  1. >>> range(100)
  2. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

  python3

  1. >>> range(100)
  2. range(0, 100)

  

字符串的特点

一个字符串一旦创建在内存里就无法修改,如果修改或者拼接会开辟新的空间重新生成字符串

使用id可以查看占用的内存地址

  1. name = "zhangsan"
  2. age = "18"
  3.  
  4. info = name + age
  5.  
  6. print(info)
  7.  
  8. print(id(name),id(age),id(info))
  9.  
  10. 2266215383344 2266213210016 2266215383408

  

三,列表

#中括号括起来以,号分割

#列表元素可以是数字,字符串也可以是列表

#可以使用索引取值,切片取值为列表

#列表元素不同于字符串是可以被修改的,在内存里面是连续的

  1,修改列表

   li[0] = xxx  修改多个 li[1:3] = [120,90]

  

  2,删除

  del li[1]

  

  3,list 把字符串转换成列表,把字符串的每一个字符转换成列表的元素

  1. s = 'akjsdhsajkdhjkahsda'
  2. new_li = list(s)
  3. print(new_li)
  4.  
  5. ['a', 'k', 'j', 's', 'd', 'h', 's', 'a', 'j', 'k', 'd', 'h', 'j', 'k', 'a', 'h', 's', 'd', 'a']

  列表转换成字符串(使用for循环实现)

  1. li = [11,22,33,'','zhangsan']
  2. s = ''
  3. for item in li:
  4. s += str(item)
  5. print(s)
  6.  
  7. 112233123zhangsan

  如果列表里面没有数字则可以使用join方法

  1. li = ['11','22','33','123','zhangsan']
  2. v = ''.join(li)
  3. print(v)
  4.  
  5. 112233123zhangsan

  

  4,append在列表尾部添加一个元素,在原值后面追加不会有返回值所以返回为None原列表追加了

  1. li = [1,2,3]
  2. v = li.append(4)
  3. print(v)
  4. print(li)
  5.  
  6. None
  7. [1,2,3,4]

  5,clear清空列表

  1. li = [1,2,3]
  2. v = li.clear()
  3. print(li)
  4.  
  5. []

  

  6,copy拷贝,浅拷贝

  1. li = [1,2,3]
  2. v = li.copy()
  3. print(v)
  4.  
  5. [1,2,3]

  7,count计算里面包含元素的个数,2出现了1次

  1. li = [1,2,3]
  2. v = li.count(2)
  3. print(v)
  4.  
  5. 1

  

  8,extend可迭代追加(对象可以是字符串,列表,元祖等所有可迭代的对象)

  1. li = [1,2,3,4]
  2. li.extend([5,6])
  3. print(li)
  4.  
  5. [1,2,3,4,5,6]

  于append不同在于该方法把对象迭代后追加,看对比,append把所有当成是一个元素追加

  1. li = [1,2,3,4]
  2. li.append([5,6])
  3. print(li)
  4.  
  5. [1, 2, 3, 4, [5, 6]]

  9,index查找索引位置(从左优先)

  1. li = [11,22,33,22,44]
  2. v = li.index(22)
  3. print(v)
  4.  
  5. 1

  

  10,insert在指定索引位置插入元素

  1. li = [11,22,33,22,44]
  2. li.insert(0,99)
  3. print(li)
  4.  
  5. [99, 11, 22, 33, 22, 44]

  

  10,pop删除元素,不加参数默认删除最后一个,返回值为删除的值,加参数代表删除某一个索引li = [11,22,33,22,44]v = li.pop()

  1. print(li)
  2. print(v)
  3.  
  4. [11, 22, 33, 22]
  5.  
  6. 44

  11,remove根据value删除(从左优先),没有返回值

  1. li = [11,22,33,22,44]
  2. v = li.remove(33)
  3. print(li)
  4. print(v)
  5.  
  6. [11, 22, 22, 44]
  7. None

  

  12,reverse反转

  1. li = [11,22,33,22,44]
  2. v = li.reverse()
  3. print(li)
  4. print(v)
  5.  
  6. [44, 22, 33, 22, 11]
  7. None

  

  13,sort排序,

  1. li = [11,22,33,22,44]
  2. v = li.sort()
  3. print(li)
  4. print(v)
  5.  
  6. [11, 22, 22, 33, 44]
  7. None

  从大往小排序

  1. li = [11,22,33,22,44]
  2. v = li.sort(reverse=True)
  3. print(li)
  4. print(v)
  5.  
  6. [44, 33, 22, 22, 11]
  7. None

PS:列表是有序的可以被修改的

四,元祖

#对应的类是tuple

#是对列表的加工

#元素不可被修改,增加或者删除

#一般在定义元祖的时候在最后加一个,(推荐)

#元祖同列表一样可以通过索引及切片取元素,也可以通过for循环迭代

  1,字符串和列表转换成元祖

  1. s = 'asdasd'
  2. li = ['asdf',123]
  3. v1 = tuple(s)
  4. v2 = tuple(li)
  5. print(v1,v2)
  6.  
  7. ('a', 's', 'd', 'a', 's', 'd') ('asdf', 123)

  

  2,元祖转换成列表

  1. tu = ("asdf","as")
  2. v = list(tu)
  3. print(v)
  4.  
  5. ['asdf', 'as']

  

  3,元祖如果里面没有保护数字可以使用join方法转换成字符串,如果有数字需要通过for循环转换成字符串

  

  4,元祖元素不能修改,但是元素里面如果包含可修改的元素则可以修改

  1. tu = ("asdf","",[1,2])
  2. tu[2][0] = 2
  3. print(tu)
  4.  
  5. ('asdf', '', [2, 2])

    

  5,元祖因为不能修改方法比列表少,count统计里面包含元素的个数,index获取索引位置

五,字典

#创建一个字典对象

info = {'k1':'v1','k2':'v2'}

#k1和v1组成一个键值对,key对应value 字典的value可以是任何值

#key可以是字符串,数字,元祖并且同一个字典key是唯一的

#布尔值True和False也可以作为key但是如果有其他key的值为1则会重复

  1. info = {
  2. 'k1':'',
  3. 'k2':2,
  4. True:3,
  5. False:4
  6. }
  7.  
  8. print (info)
  9.  
  10. {False: 4, 'k1': '', 'k2': 2, True: 3}

#字典是无序的,获取元素的方法是通过key不是通过有序的数字索引,因为是无序的所以不能通过切片方式取元素

  1,删除del del info['k1']

  1. info = {
  2. 'k1':'1',
  3. 'k2':2
  4. }
  5. del info['k1']
  6. print(info)
  7.  
  8. {'k2': 2}

  

  2,字典是可以使用for循环的,默认循环是所有key,如果需要循环value可以循环for item in info.values()

   需要循环key和value则是info.items()

  1. info = {
  2. 'k1':'',
  3. 'k2':2
  4. }
  5. for item in info:
  6. print(item)
  7.  
  8. k1
    k2

  3,clear清除

  4,copy复制,浅复制

  5,fromkeys格式化生成字典,每一个元素迭代作为key,并且指定统一的value

  1. v = dict.fromkeys(['k1', 'k2', 'k3'], 123)
  2.  
  3. print(v)
  4.  
  5. {'k3': 123, 'k1': 123, 'k2': 123}

  

  6,get取的key存在则返回对应的value,当key不存在时可以指定返回值,默认是None

  1. dic = {
  2. "k1":"v1"
  3. }
  4.  
  5. v = dic.get('k1')
  6. print (v)
  7.  
  8. v1

  7,pop根据key删除返回为删除的value,pop需要加参数

  1. dic = {
  2. "k1":"v1"
  3. }
  4.  
  5. v = dic.pop('k1')
  6. print (v,dic)
  7.  
  8. v1 {}

  8,popitem随机删除一个键值对,返回值为删除的键值对组成的元祖

  1. dic = {
  2. "k1":"v1",
  3. "k2":"v2"
  4. }
  5.  
  6. v = dic.popitem()
  7. print (v,dic)
  8.  
  9. ('k1', 'v1') {'k2': 'v2'}

  9,setdefault设置值如果已经存在则不设置并且获取当前key对应的值,如果不存在新加一个键值对

  1. dic = {
  2. "k1":"v1",
  3. "k2":"v2"
  4. }
  5.  
  6. v = dic.setdefault('k1',123)
  7. print (dic,v)
  8.  
  9. {'k2': 'v2', 'k1': 'v1'} v1

  10,update更新已经存在的更新,不存在的新建键值对

  1. dic = {
  2. "k1":"v1",
  3. "k2":"v2"
  4. }
  5.  
  6. v = dic.update({'k1':123,'k3':123})
  7. print (dic,v)
  8.  
  9. {'k3': 123, 'k2': 'v2', 'k1': 123} None

  以上的另外一种更加方便的写法,直接使用key等于value赋值,效果是一样的

  1. dic = {
  2. "k1":"v1",
  3. "k2":"v2"
  4. }
  5.  
  6. v = dic.update(k1=123,k3=123)
  7. print (dic,v)

  

  11,字典里面用的最多是是keys,values,items,update

小结整理:

#数字

#int(..)

#字符串

replace/find/join/strip/startwith/split/upper/lower/format

  1. tempalte = "I am {name},age:{age}"
  2. v1 = tempalte.format(name='zhangsan',age=19)
  3. v2 = tempalte.format(**{"name":'zhangsan','age':19})
  4. print (v1,v2)

#列表

#apend,extend,insert

#索引,切片,循环

#元祖

#字典

get/update/keys/values/items

字典可以使用in判断是否在里面,默认是key如果是要判断value则使用values

六,布尔值

  使用bool(..)转换成布尔值

假的False None ,“ ”,(),[],{},0这些都是False其他的都是真的

  

Python全栈day10(基本数据类型及其常用方法)的更多相关文章

  1. python 全栈开发:数据类型整体分析

    数据类型初始 数据类型:    int :用于计算. 例子:1.2.3.4........................... 常用方法操作: bit_length()   ps:求一个数字转换成二 ...

  2. python全栈开发 * mysql数据类型 * 180829

    * 库的操作 (增删改查)一.系统数据库查看系统库命令 show databases1.information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列 ...

  3. python全栈开发笔记---数据类型--综合练习题

    一.有两个列表 l1 = [11,22,33]       l2 = [22,33,44] a. 获取内容相同的元素列表 for item in l1: if item in l2: print(it ...

  4. python全栈开发笔记---------数据类型---字典方法

    def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...

  5. python全栈开发笔记---------数据类型-----字典dict

    字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...

  6. Python全栈之路----数据类型—列表

    1.列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作.列表里面的数可以重复. L1 = [ ] #定义空列表 L2 = [ 'a' , 'b' , 'c' , 'd' ] ...

  7. Python全栈之路---数据类型—字符串

    字符串:有序的字符的集合,用于存储和表示基本的文本信息,一对单.双.或三引号中间包含的内容称之为字符串 1.特性:有序,不可变(开辟新地址存储字符串,python解释器会定期清空不用了的已存储的) & ...

  8. Python全栈之路----数据类型—字典

    字典:可变,一种key-value的数据类型 info = { 'stu1101' : 'TengLan Wu' , 'stu1102' : 'LongZe Luola' , 'stu1103' : ...

  9. Python 全栈开发:dict(字典)常用方法操作、dict嵌套

    数据类型的划分:可变数据类型和不可变数据类型. 不可变数据类型(可哈希):元祖.bool.int.str 可变数据类型(不可哈希):list.dict,set(集合) dict(字典): dict(字 ...

随机推荐

  1. 彻底清除Linux centos minerd木马 实战  跟redis的设置有关

    top -c把cpu占用最多的进程找出来: Tasks: total, running, sleeping, stopped, zombie Cpu(s): 72.2%us, 5.9%sy, 0.0% ...

  2. Makefile 11——支持头文件目录指定

    现在,是时候在对应目录放入对应文件了: /× foo.h */ #ifndef __FOO_H #define __FOO_H void foo(void) #endif/*__FOO_H*/ /* ...

  3. php代码检查

    最近写php,几个同事都是没写过c的,经常写的变量没有定义,而php没有编译,错误无法发现. 我们现在用的是NetBeans,好在其提供了语法检测,如下图,让编辑器强制显示我错误

  4. C#里面的枚举与位或运算符 一个枚举变量存入多个值

    以前我们如果定义一个枚举类型 ,然后定义一个枚举变量,那么这个枚举变量只能为类型中的一个值,现在我们想要一个变量能够代表多个值: 今天看<Pro Net 2.0 Windows Forms An ...

  5. 我们通过一个服务器程序,以研究backlog参数对listen系统调用的影响,运行截图如下

    启动服务器程序,服务器程序正在等待客户端的连接 我们使用一次telnet命令就建立一个连接 打开多个终端窗口执行下列命名 #telnet 192.168.255.128 4444多次执行 然后我们执行 ...

  6. HTML5关于上传API的一些使用(下)

    通过前面两篇的分享,我们已经搞定了单个文件的普通的上传,包括文件预览,图片预览,上传速度等前端界面的显示,这次我们来谈谈关于>XMLHttpRequest2.0在界面之后假如才用分片上传能做到一 ...

  7. 学习:在Eclipse中用TODO标签管理任务(Task)。

    1.Windows->Perferences->Java->Compile->Task Tags,我们就可以自定义任务标签,Eclipse中可以支持HIgh,Normal,Lo ...

  8. mysql存储过程,获取指定数据库的某个表的字段信息

    DROP PROCEDURE IF EXISTS Proc; DELIMITER //CREATE PROCEDURE Proc(database_name varchar(50),table_nam ...

  9. hrbustoj 1104:Leyni, LOLI and Line(解析几何,斜截式的应用)

    Leyni, LOLI and Line Time Limit: 1000 MS    Memory Limit: 65536 K Total Submit: 181(54 users)   Tota ...

  10. Gradle -- buildScript块与allprojects块及根级别的repositories区别

    http://blog.sina.com.cn/s/blog_72ef7bea0102vvg3.html