zoukankan      html  css  js  c++  java
  • int & bool & string

    主要内容:

    • 1. int 整数
    • 2. bool 布尔值
    • 3.字符串

    1.整数 

    • 常见操作:+-*/  // % 其中 //的意思是 取整除返回商的整数部分。
    • bit_length()    一个数的二进制长度
      a = 15    #15 的二进制表示是1111
      print (a.bit_length())  # 4

    2.bool 

    • True => 1 False => 0
      s = ""
      if s :
          print ("wahaha")
      while 1:  # 1和True效率: 1的效率比True高一点点
          print("还我钱!")
    • 可以当做False来用的数据: 0 "" [] {} () None

    3. 字符串

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

    3.1 索引

    #     0  1 2 3 4 5 6
    s1 = "百二秦关终属楚"
    print (s1[0])
    print (s1[1])
    print (s1[2])
    print (s1[3])
    print (s1[6])
    print (s1[7])      
    print (s1[-1])       # -1 表示倒数.
    print (s1[-5])       # 倒数第五个

    注:索引超范围的报错     IndexError:  string index out of range

    3.2 切片 (截取字符串的片段)

    • 语法: str[start: end]    规则:顾头不顾尾, 从start开始截取. 截取到end位置. 但不包括end   
      #     0  1 2 3 4 5 6
      s1 = "百二秦关终属楚"
      print (s1[0:3])    # 从0 获取到3 但不包括3 结果: 百二秦
      print (s1[3:6])    # 关属楚
      print (s1[4:7])    # 最大是7 ,但要想取到7 必须上限到8
      print (s1[2:10])   # 如果给的有边值已经超过了7那么相当于取到最后
      print (s1[2:])     # 从第二个取到最后,右边的那位可以不给
      print (s1[:5])     # 从头取的话左边可以不给
      print (s1[:])      # 原样输出
      print (s1[-1:-5])      # 默认方向是从左到右,从-1取不到-5
      print (s1[-5:-1])      # 同样取不到最后一个字,
      print (s1[-5:])        # 右边什么都不写 ,取到最后
      print (s1[:-1])        # 这是取到倒数第一个
    • 跳着截取     切片语法:  str[start:end:step]    start: 起始位置    end: 结束位置    step:步 (如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1 ,若果为负数,成逆序效果)
      #    0 1 2 3 4 5 6 7 8 9
      s = "破釜沉舟百二秦关终属楚"
      print (s[1:7:2])   #从第一个开始取,取到第7个(不包括7)每两个取一个
      print (s[:6:2])    #从头取到第6个,每两个取一个
      print (s[4::2])    #从第四个取到最后,每两个取一个
      print (s[::2])     #从头取到尾,每两个取一个
      print (s[-1:-6:-2])    #从右往左取,步长是-1,效果成逆序  
      print (s[::-2])        #步长可以决定取的方向
      print (s[-6::-2])
    • 简单应用: 判断回文
      s = "上海自来水来自海上"  # 回文
      s1 = s[::-1]
      if s == s1:
          print("是回文")
      else:
          print("不是回文")

    3.3 字符串的操作

    •  lower ()  & upper() 
      s = "Alex is not a good man! Sally is a good man"
      s1 = s.lower()
      print (s1)       #    结果 alex is not a good man! sally is a good man
      s = "Alex is not a good man! Sally is a good man"
      s2 =s.upper()
      print (s2)
      while True :
          content = input ("请输入你要喷的内容(输出Q退出)")
          if content.upper() == "Q" :
              break
          print (content)              #在输入时不需要区分大小写

      应用:

      #应用, 校验用户输入的验证码是否合法
      verify_code = "abDe" 
      user_verify_code = input("请输⼊入验证码:")
      if verify_code.upper() == user_verify_code.upper():
          print("验证成功")
      else:
           print("验证失败")
    • strip()    # 去掉左右两端的空格
      s = "      有志者事竟成       	"
      print (s)
      s1 = s.strip()
      print (s1)

      应用:   

      # 模拟用户登录
      #用户的输入时无法保证合法的例如有空格,需要进行处理和判断
      username = input ("请输入用户名:").strip()
      password = input ("请输入密码:").strip()
      if username == "Alex"and password == "1234":
          print ("成功")
      else :
          print ("失败")

      s = "阳光很刺眼的阳光"
      print(s.strip(""))    #注意去除的是两端,中间的去不掉  结果:阳光很刺眼的阳
    • replace(old, new)
      s = "alex_wusir_ritian_taibai_evaj_eggon"
      s1 = s.replace("taibai","taihei")
      s2 = s.replace ("i","SB",2)     #意思是将字符串中的i换成SB,换两个
      print (s1)
      print (s2)
    • split()  根据括号中内容去切,当什么也不写,默认用空白去切  
      s = "alex_wusir_ritian_taibai_evaj_eggon"
      lst = s.split("ritian") # 刀有多宽 就要损失掉多少
      print(lst)                          #结果是:['alex_wusir_ritian_', '_evaj_eggon']
      s = "alex_wusir_ritian_taibai_evaj_eggon"
      lst = s.split("_") # 刀有多宽 就要损失掉多少
      print(lst)                           #结果是:['alex', 'wusir', 'ritian', 'taibai', 'evaj', 'eggon']
      print ("周润发
      周星驰周杰伦周笔畅")     # 
       意思是换行

      另外: 切割的内容在边上会出现空字符串

      s = ("周润发周星驰周杰伦周笔畅")
      lst = s.split("周润发周星驰周杰伦周笔畅")   # 切割的内容在边上. 会出现空字符串
      print (lst)                    # 结果是: ['', '']
      s = ("周润发周星驰周杰伦周笔畅")
      lst = s.split("周星驰周杰伦周笔畅")   # 切割的内容在边上. 会出现空字符串
      print (lst)                    # 结果是: ['周润发', '']
    • startswith()  & endswith()  
      s = "今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好"
      s1 = s.startswith("太好了")
      s2 = s.endswith ("太好了")
      s3 = s.startswith("今天的")
      s4= s.endswith ("不太好")
      print (s1)
      print (s2)
      print (s3)
      print (s4)
    •  count & find()
      #    0  1 2 3 4 5
      s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡"
      s1 = s.count ("炸鸡") #   用来计数
      print (s1)            #结果4
      s2 = s.find ("疙瘩汤")      #如果找不到就返回-1
      print(s2)               #结果是-1
      s3 = s.find ("啤酒")
      print (s3)           #结果是 5  返回的是索引
      s4 = s.index("疙瘩汤")    #如果找不到就报错
    • isdigit()  判断是否是数字
      s = "I am sylar, I'm 14 years old, I have 2 dogs!"
      count = 0
      for c in s:
          if c.isdigit():   #判断是否是数字组成
              count = count + 1
      print(count)
    •  len() 求长度. 内置函数

      s = "我是上帝, 你也是上帝"
      print(len(s)) # 内置函数len(字符串) 返回给你字符串的长度
    • join()
      lst = ["汪峰", "吴君如", "李嘉欣", "陈慧琳", "关之琳"]
      #  遍历列表. 把列表中的每一项用"_" 做拼接
      s = "_".join(lst) # 把列表转化成字符串
      print(s,type(s))    #汪峰_吴君如_李嘉欣_陈慧琳_关之琳 <class 'str'>
      s1 = "汪峰_吴君如_李嘉欣_陈慧琳_关之琳"
      lis = s1.split("_") # 把字符串转化成列表
      print(lis,type(lis))     #['汪峰', '吴君如', '李嘉欣', '陈慧琳', '关之琳'] <class 'list'>
      print("*".join("马化腾")   # 马*化*腾
    •  for 迭代

      #for 变量 in 可迭代对象:
        # 循环体(break, continue)
      #else:
        #当循环结束的时候执行else
      s = "朱元璋朱棣"
      count = 0
      while count < len (s):  # 遍历字符串的第一种办法
          print (s[count])
          count =count + 1
      s = "朱元璋朱棣朱建峰"
      # for循环
      # for 变量 in 可迭代对象:
      # 把可迭代对象中的每一个元素 分别赋值给前面的变量, 可以方便可迭代对象的遍历
      for c in s:
          print(c)
    • for循环中出现的报错类型 TypeError 

       # TypeError: 'int' object is not iterable
      for i in 10:
          print(i)  #报错

     

      

  • 相关阅读:
    The password has to have a minimum of 6 characters, including at least 1 small letter, 1 uppercase letter and 1 number
    Angular i18n的技术分享、踩过的坑
    转: .Net 4.0 ExpandoObject 使用
    min_square
    KALMAN PYTHON
    双系统安装 win + ubuntu
    docker
    drl
    shell
    导航定位方案
  • 原文地址:https://www.cnblogs.com/wcx666/p/9592239.html
Copyright © 2011-2022 走看看