zoukankan      html  css  js  c++  java
  • python笔记(2)--数据类型(整型、布尔型、字符串)

    数据类型(一):

    本节知识内容:

    • 整型
    • 布尔类型
    • 字符串

    内容回顾和补充:

    补充:

    运算符补充:

    • in

      value = "我是中国人"
      
      #判断“中国”是否在value所代指的字符串中,“中国”是否是value所代指的字符串的子序列。
      v1 = "中国" in value
      
      #示例:
      content = input("请输入内容:")
      if "退钱" in content:
      	print('包含敏感字符')
      #示例
      while True:
          content = input('请输入内容:')
          if '退钱' in content:
              print('包含敏感字符')
          else:
              print(content)
              break
      
      • not in

      编码优先级补充:

      注意:从上往下依次排列

      运算符 描述
      ** 指数(最高优先级)
      ~ + - 按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
      * / % // 乘,除,取余,取整除
      + - 加法 减法
      >> << 右移,左移运算符
      & 位'AND'
      ^ | 位运算符
      <= < > >= 比较运算符
      <> == != 等于运算符
      = %= /= //= -= += *= **= 赋值运算符
      is is not 身份运算符
      in not in 成员运算符
      not and or 逻辑运算符

    第一节:整形(int)

    整形(int)不同:

    • py2中:
      • 32位电脑:取值范围为-2 ** 31 ~ 2 ** 31-1,即-2147483648 ~ 2147483647
      • 64位电脑:取值范围为-2 ** 63 ~ 2 ** 63-1,即-9223372036854775808 ~ 9223372036854775807
      • 超出范围后就会变成long(长整型)
    • py3中:
      • 只有int类型,没有long类型,所有的数字全部为int

    第二节:布尔类型(bool / boolen)

    • 只有两个值:False / True
    • 转换:
      • 数字转布尔:0是False,其他都是True
      • 字符串转布尔:""是False,其他都是True

    第三节:字符串(str / string)

    1.修改大小写

    • 变量名.lower():字符串变小写
    • 变量名.upper():字符串变大写
    #验证码示例:用户输入的变量与验证码的变量全部变为小写
    check_code = "UNFio" 
    message = '请输入验证码%s:'%(check_code,)   
    code = input(message)
    new_check_code = check_code.lower()
    message = message.lower()
    if code == new_check_code:
        print("登录成功")
    else:
        print("登录失败")
     #优化后代码:
    check_code= "UNFio"
    code = input('请输入验证码%s:'%(check_code,))
    if code.lower() == check_code.lower():
        print("登录成功")
    else:
        print("登录失败")
    

    2.判断是否可以转换为int()类型

    • 变量名.isdigit():判断是否可以转换为数字类型
    #电话问答,只能输入数字1,2,3,如果不是,请重新输入
    print("""欢迎致电10086:
    1.话费查询
    2.业务办理
    3.增值服务
    """)
    while True:
        num = input("请输入数字:")
        flage = num.isdigit()           #判断num变量是否为整数
        if flage ==True:
            num = int(num)
            while num in {1,2,3}:
                if num == 1:
                    print("话费查询")
                    break
                elif num == 2:
                    print("业务办理")
                    break
                elif num == 3:
                    print("增值服务")
                    break
            else:
                print("请输入1,2,3")
                continue
        else:
            print("看清楚,输入数字,输入其他无效")
            continue
        break
    

    3.去除空白:

    • 变量名.lstrip():去除左边空格
    • 变量名.rstrip():去除右边空格
    • 变量名.strip():去除两边空格
    user = input("请输入用户名:")
    new_user1 = user.rstrip()         #user去除右空格,赋值给new_user1
    new_user2 = new_user1.lstrip()    #new_user1去除左空格,赋值给new_user2
    data = new_user2.upper()          #new_user2全部变为大写,赋值给data
    print("---->",data,"<---")
    #输入     eiiol      结果为:----> EIIOL <---
    

    4.替换关键字:

    • 变量名.replace('关键字','替换后的内容',次数)

      message = input("请输入用户名:")     #输入:我去你大爷家里玩,去你大爷的,大爷大妈们好和蔼
      new_message_1 = message.replace("大爷","**")
      new_message_2 = message.replace("大爷","**",2)
      print(new_message_1)
      print(new_message_2)
      """结果为:
      我去你**家里玩,去你**的,**大妈们好和蔼
      我去你**家里玩,去你**的,大爷大妈们好和蔼    """
      

    5.切割:split / rsplit

    • 变量名.split("以关键字符切割",次数):从左向右依次切割
    • 变量名.rsplit("以关键字符切割",次数):从右向左依次切割
    message = ("我想陪你去看电影,牵着你的手去逛街,还想带你去旅游")
    new_message_1 = message.split(",")
    new_message_2 = message.split(",",1)
    new_message_3 = message.rsplit(",",1)
    print(new_message_1)
    print(new_message_2)
    print(new_message_3)
    """输出结果为:
    ['我想陪你去看电影', '牵着你的手去逛街', '还想带你去旅游']
    ['我想陪你去看电影', '牵着你的手去逛街,还想带你去旅游']
    ['我想陪你去看电影,牵着你的手去逛街', '还想带你去旅游']
    """
    

    6.判断是否已关键字开头 / 结尾:startswitch / endswitch

    • 变量名.startswitch("关键字"):已关键字开头

    • 变量名.endswitch("关键字"):已关键字结尾

      name = input("请输入字母")
      #判断是否已ya开头
      flag = name.startswith("ya")
      flag = name.endswith("ya")
      print(flag)
      
      val = name[0:2]
      if val == "ya":
          print("已ya开头")
      else:
          print("不是已ya开头")
      

    7.字符串格式化:format

    • "变量{0}{1}{2}".format("0",1,2,):后面format大括号内参数传参到前面

      name = "我是{0},今年{1}岁".format("yanan",28)
      print(name)
      

    8.字符串转换其他编码:encode

    • 变量名.encode("要转变的编码类型") :解释器读取到内存后,按照unicode存储:两个字八个字节
    name = "李亚楠"
    v1 = name.encode("utf-8")
    print(v1)
    v2 = name.encode("gbk")
    print(v2)
    

    9.字符串中循环加入连接符:join

    • "字符".join(变量名):循环每个元素,并在元素和元素之间加入连接符

      name = "yanan"
      reset_name = "_".join(name)
      print(reset_name)
      #结果为y_a_n_a_n
      

    第四节:切片&分组

    1. ​ len(变量名):计算变量名字符串的长度
    message = ("我想陪你去看电影,牵着你的手去逛街,还想带你去旅游")
    num = len(message)
    print(num)
    #结果为25
    
    1. 变量名[下标]:索引取值
    v = "yanan"
    v[0]		#print(v[0])的结果为y
    v[-1]		#从后往前取
    
    text = input("请输入:")
    num = len(text)
    index = 0
    total = 0
    while True:
        message = text[index]
        if message.isdigit():
            print(message)
            total += 1
        if index == num - 1:
            break
        index += 1
    print(total)
    
    1. 切片
    • 下标从0开始,前取后不取,负数是从后往前数,-1为最后一个字符

      • 注意不能从后往前取,只能从前往后取!!!!
      v = "liyanan"
      
      v1 = v[2:4]		#取出ya
      v2 = v[3:7]		#取出anan
      v3 = v[3:-1]	#取出ana
      v4 = v[3:]		#取出anan
      v5 = v[:-2]	#取出liyan
      v6 = v[-1:-2]	#无法取出
      v7 = v[-1:1]	#无法取出
      
    • len()赋值给变量,用变量取下标,应用更灵活

      text = input("请输入:")
      num = len(text)
      if num >=5 :					#判断输入的字符串是否大于等于5
          new_text = text[-2:]		 #取最后两个字符
          new_text_1=text[num-2:num]	  #用变量表示下标,取最后两个字符
       print(new_text,new_text_1)
      else:
          print(text)
      
    1. 步长:

      • 根据步长的长度,跨越取字符:

        • 正数是从前往后的步长
        • 负数是从后往前的步长
         name = "liyanan"
         val = name[::2]	#取出lynn
         val = name[0:4:2]	#取出lyn
         val = name[::-1]	#取出nanayil(字符串的反转)
        

    第五节:for循环

    ​ for和while的使用场景:(有穷尽优先使用for循环,无穷尽优先使用while循环。不是绝对的)

    #for循环打印"yanan"的每个元素:
    name = "yanan"
    for i in name:
        print(i)
    #打印1-10的数字,使用range(1,11) = [1,2,3,4,5,6,7,8,9,10]
    for i in range(1,11):
         print(i)
    #打印1-10的数字,排除7不打印
    for i in range(1,11):
        if i ==7:
            pass
        else:
            print(i)
    
  • 相关阅读:
    js简单对象List自定义属性排序
    我所理解的Vue——学习心得体会1(Vue对象)
    vue的checkbox或多选的select的代码例子
    display:inline; display:block;
    托管到github上的网页图片在百度浏览器中显示不全
    background-position
    鼠标焦点变化引起mouseout事件
    jquery检查元素存在性
    nodevalue
    链接被点击的默认行为——带到另一个窗口
  • 原文地址:https://www.cnblogs.com/lynlearnde/p/11579988.html
Copyright © 2011-2022 走看看