zoukankan      html  css  js  c++  java
  • int, bool, string的操作

    基本数据类型

    1.int型

      可以求整数的二进制长度.输入一个数字a,"a.bit_length()"语法求a的二进制长度.

    a = 3   #二进制为11
    print(a.bit_length())#结果为2

    2.bool型

      bool型的取值只有True和False两种结果.可以语str型,int型转换.用括号把要转换的给括起来,例如,int型转bool型: bool(int). 记住带空(None也是空)的都是False,不带空的都是True.

    a = 0
    b = bool(a)#0是False,非0是True
    print(b)#False

    3.str型

      字符串有很多操作,例如索引,切片,格式化输出,查找,条件判断等

    (1) 索引

      索引就是字符串的下标,下标是从0开始,例如"qwertyu"长度为7,但是它的索引范围是从0到6.索引操作如图:

    s = "qwertyuiop"
    print(s[0])#结果为q
    print(s[1])#结果为w
    print(s[2])#结果为e
    print(s[3])#结果为r
    print(s[4])#结果为t
    ......

    (2) 切片

      用字符串的下标来截取部分字符串内容.语法:str[start:end],str是字符串,start是下标开始的位置,end是下标结束的位置.start为空表示从头开始切,end为空表示切到尾.注意切片是顾头不顾尾,只能截取到end的前一个位置.

     

    s = "这是一个很长的字符串"
    s1 = s[2:6]#下标从2到6截取,但不包括下标为6的字符
    print(s1)#一个很长

      也可以反方向截取(从右往左),下标开始值为-1.

    s = "这是一个很长的字符串"
    s1 = s[-6:]#从下标-6截取到尾
    print(s1)#很长的字符串

      也能执行跳着截取操作语法:str[start:end:步数],步数就是每隔几个取一个

    s = "这是一个很长的字符串"
    s1 = s[ ::2]#从头到尾,每隔两个截取一个
    print(s1)#这一很的符

       总结一下切片不同的截取方式

    a = "qwertyuiop"
    print(a[2:6]) #erty
    print(a[2:6:-1])#从2到6(从左到右)什么都没有,因为是从右到左获取的
    print(a[-2:-6:1])#从-2到-6(从右到左)什么都没有,因为是从左到右获取的
    print(a[-2:-6:-1])#oiuy
    print(a[-6:-2:1])#tyui
    print(a[-6:-2:-1])#无结果
    print(a[-1:1])#从-1到1(从右往左)什么都没有,因为默认是从左到右获取 print(a[-1:1:-1])#poiuytre print(a[1:-1:-1])#无结果 print(a[1:-1:1])#wertyuio print(a[:-1:-1])#无结果 print(a[:-1:1])#qwertyuio print(a[-1::1])#p print(a[-1::-1])#poiuytrewq#从-1到结尾,这里的结尾就是从左到右的开始端"q" print(a[::-1])#poiuytrewq

    4.字符串的相关操作方法.

    切记,字符串是不可改变的对象,任何操作对字符串不会有任何影响.

    (1) 大小写转换

      1)  首字母大写

      语法: s2 = s1.Capitalize() ,注意转换时要把值赋给另一个变量,print(s2)才是我们转换的值,print(s1)的结果还是原来的字符串

    s = "qweRTyuiop"
    s1 = s.capitalize()  # 首字母大写
    print(s)    # 原字符串不变还是 qweRTyuiop
    print(s1) #Qwertyuiop 原字符串中大写的字母变成小写,只有首字母变成大写

      2)   全部转换成大(小)写

      语法:大写:s1 = s.upper(). 小写:s2 = s.lower()

    s = "qweRTyuiop"
    print(s.upper()) #QWERTYUIOP
    print(s.lower()) #qwertyuiop

      3) 大小写互换

      语法:s1 = s.swapcase()

    s = "qweRTyuiop"
    print(s.swapcaser()) #QWErtYUIOP

    (2) 切来切去

      1) 居中

      语法: s.center().让输出的内容居中.

    s = "周杰伦"
    print(s.center(5, "*")) # *周杰伦*

      2)去空格

      语法:s.strip().

    s = "  qweR Tyu iop  "
    print
    (s.strip()) #qweRTyuiop

      3) 字符串替换

      语法:s.replace()

    s = "qweRTyuiop"
    print(s.replace("q","a"))#aweRTyuiop

      4)字符串切割

      语法: s.split(),切割后的字符串成了列表.

    s = "qwe,RTy,uio,p"
    print(s.split(",")) #['qwe', 'RTy', 'uio', 'p']

    (3). 格式化输出

      之前是用%s和%d来代替变量的值,{} .format() 也有同样的作用,而且{}里可以指定变量.

    sername = input("请输入名字:")
    place = input("请输入地点:")
    hobby = input("请输入爱好:")
    print("敬爱可亲的{},最喜欢在{}地方干{}".format(username,place,hobby))

    (4) 查找

      1) s.startswith(), s.endswith()

      startswith()是判断以什么开始,endswith是判断以什么结束.

      2) s.count(),查找某字符串出现的次数.

      3) s.find(),查找字符串出现的位置,没有会返回-1

      4)s.index(),功能和find一样,没有会报错

    s = "今天吃饭了吗?没吃"
    print(s.startswith(""))   # True,判断字符串是否以今开头
    print(s.endswith(""))     # False,判断字符串是否以吃结尾
    print(s.count(""))   # 2次,计算吃在字符串中出现的次数
    print(s.find("" ))    #1,计算天在原字符串中出现的位置, 如果没出现返回 -1
    print(s.index("")) #7,计算没在字符串的位置

    (5) 条件判断

      1)是否由字母数字组成: s.isalnum()

      2)是否由字母组成:s. isalpha()

      3)是否由数字组成: s.isdigit()

      4)是否是大写字母: s.isupper()

      5)是否是小写字母: s.islower()

    s = "abc123"
    print(s.isdigit()) # False 判断字符串是否由数字组成
    print(s.isalpha()) # False 是否由字母组成
    print(s.isalnum()) # True是否由字母和数字组成
    print(s.isupper()) # False 是否由大写字母组成
    print(s.islower()) # True 是否由小写字母组成

    (6) 计算字符串的长度

      len()用来计算字符串的长度,len()是内置函数,不用在前面加点.len()函数执行的时候实际就是__len__()

    s = "hello,world!"
    print(len(s)) #12
    
    print(s.__len__()) #12

    (7) 迭代

      语法: for 变量 in 可迭代对象            将对象里的每个字符都赋给变量

          循环体

          else

    s = "123"
    for c in s:  # 把s中的每一个字符交给前面的c 循环
        print(c) 
    #1
    #2
    #3
    无限的我,现在才开始绽放,从东边的第一缕阳光到西边的尽头
  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/huangqihui/p/9265585.html
Copyright © 2011-2022 走看看