整数 -- 数字(int)

用于比较和运算

32位 2 ** 31 ~ 2 ** 31-1

64位 -2 ** 63 ~ 2 ** 63- 1

​ + - * / // ** %

python2 整型int -- long(长整型) / 获取整数

python3 整型int / 获取浮点数

bin(十进制数) 将十进制转换成二进制 (除二求余法)

int("二进制",2) 将二进制转换成十进制

布尔值 -- bool()

print(bool(1)) #数字非零就是True,零就是False

print(bool("")) #字符串不为空就是True,字符串里没有任何东西就是False

print(bool(" ")) #结果:True

print(bool("False")) #结果为True

字符串详解

  • 索引(下标)

    • 从左往右(0~n)

    • 从右往左(-1~字符串的长度)

    • 索引的时候索引超出范围会报错
  • 切片

  name = 'Jacky'
  # 索引   01234
  print(name[0:4])

  结果:
  Jack
  • [第一个位置是开始:第二个位置是终止]中间必须使用分号,从索引0开始获取到索引4(不包含4)结束

  • 步长

    name = 'Jacky'
    # 索引   01234
    print(name[0:4:1])
    
    结果:
    Jack
    """
    s = 'Python最NB'
    获取s字符串中前3个内容
    获取s字符串中第3个内容
    获取s字符串中后3个内容
    获取s字符串中第3个到第8个
    获取s字符串中第2个到最后一个
    获取s字符串中第1,3,5个内容
    获取s字符串中第2,4,6个内容
    获取s字符串中所有内容
    获取s字符串中第4个到最后一个,每2个取一个
    获取s字符串中倒数第5个到最开始,每3个取一个  
    """
    s = 'Python最NB'
    print(s[0:3])
    print(s[2])
    print(s[-3:])
    print(s[2:8])
    print(s[1:])
    print(s[0:5:2])
    print(s[1:6:2])
    print(s[:])
    print(s[3::2])
    print(s[-5::-3])
    print(s[:-8:-2])

    [开始 : 结束 : 步长] 步长默认为1

    第一个参数是起始位置,第二参数是终止位置,第三个参数是步长(每次走几步)

    切片的时候起始位置和终止位置超出范围的时候不报错
  • 字符串的方法

    • 因为字符串是可哈希的(不可变的),所以使用方法后字符串并没有改变,需要重新赋值
    • upper()(全部大写)

      name = 'alex'
      new_name = name.upper()
      print(new_name)
      # 把这个字符串全部变成大写
      
      结果:
      ALEX
    • lower()(全部小写)

      name = 'ALEX'
      new_name = name.lower()
      print(new_name)
      # 把这个字符串全部变成小写 
      
      结果:
      alex
      • 应用场景

        # 字符串大小写做验证码
        id = '1234'
        id_input = input("请输入验证码(1234)")
        user = input('请输入账号:')
        pwd = input('请输入密码:')
        if id == id_input:
            if user == 'alex' and pwd == 'alex123':
                print('登陆成功!')
            else:
                print('登录失败')
        else:
          print('验证码错误!')
    • startswith("字符")(判断是否以什么开头)

      name = 'alex'
      new_name = name.startswith('a')
      print(new_name)
      # 判断这是不是字符串是不是以a开头的
      
      结果:
      True
      
      name = 'alex'
      new_name = name.startswith('e',2,6)
      print(new_name)
      # 判断这是不是字符串是不是以e开头的
      
      结果:
      True
    • endswith("字符")(判断是否以什么结尾)

      name = 'alex'
      new_name = name.endswith('x')
      print(new_name)
      # 判断这是不是字符串是不是以x结尾的
      
      结果:
      Ture
      
      name = 'alex'
      new_name = name.endswith('e',2,3)
      print(new_name)
      # 判断这是不是字符串是不是以e结尾的
      
      结果:
      True
    • count()(统计出现的次数)

      name = 'alexdsb'
      new_name = name.count('a')
      print(new_name)
      #统计name这个字符串中a出现的次数
      
      结果:
      1
    • replace("旧替换字符","新替换字符") (字符串替换,后面的字符替换前面的字符)

      特殊用处:把字符串所有的空格去掉 #replace(" ","")
      s = ' a  l ex ds b '
      s1 = s.replace(' ','')
      print(s1)
      # 替换字符串中的内容
      
      结果:
      alexdsb
      name = 'alexdsb'
      new_name = name.replace('alex','zdr')
      print(new_name)
      # 替换字符串中的内容
      
      结果:
      zdrdsb
      
      name = 'alexdsbalex'
      new_name = name.replace('alex','zdr',1)
      print(new_name)
      # 替换字符串中的内容,1是指替换一次就行
      
      结果:
      zdrdsbalex
    • strip() (去除头尾俩边的空格,换行符,制表符)
      name = ' alexdsb '
      new_name = name.strip()
      print(new_name)
      #去除头尾俩遍的空格和换行符
      
      结果:
      alexdsb
      name = 'alexdsba'
      new_name = name.strip("al")
      print(new_name)
      # 去除头尾的al和a
      
      结果:
      exdsb
    • split("字符") (以空格,换行符,制表符分割)
      name = 'alexdsb'
      new_name = name.split("x")
      print(new_name)
      #通过x将字符串name进行切割
      
      结果:
      ['ale', 'dsb']
      name = 'alexdsbx'
      new_name = name.split("x",2)
      print(new_name)
      #通过x将字符串name进行切割,2指的是最多切几刀
      
      结果:
      ['ale', 'dsb', '']
    • format("字符") (字符串格式化)
      name = 'alexdsb{}'
      new_name = name.format('说的对')
      print(new_name)
      # 字符串格式化 
      
      结果:
      alexdsb说的对
    • is系列

      • isdecimal() (判断是不是十进制,返回的是布尔值)

        name = '123'
        new_name = name.isdecimal()
        print(new_name) # 判断是不是十进制,返回结果是布尔值
        
        结果:
        True
        
        • isalpha() (判断是不是字母和中文,返回的是布尔值)
      name = 'alex'
      new_name = name.isalpha()
      print(new_name)
      # 判断是不是字母和汉字,返回结果是布尔值
      
      结果:
      True
      
      • isalnum() #判断是不是字母,数字,中文

      • isdigit() #判断是不是阿拉伯数字

      • 补充-

        首字母大写
        name = 'alexdasx'
        new_name = name.capitalize()
        print(new_name)
        
        查找下标
        name = 'alexdasx'
        new_name = name.find('e')
        print(new_name)
        # 通过元素查找下标,不存在就返回-1
        
        name = 'alexdasx'
        new_name = name.index('e')
        print(new_name)
        # 通过元素查找下标,不存在就报错
        
        每个单词首字母大写
        name = 'alex_wusir'
        print(name.title())
        
        内容填充
        name = 'alex_wusir'
        print(name.center(50))
        
        大小写反转
        name = 'alex_wusir'
        print(name.swapcase())
        
    • len() (获取长度)

      s = "Python提供的这个方法就是获取长度的"
      print(len(s))
      
      结果:
      20
      

for循环 --for关键字

name = "Jacky"
for i in name:
    print(i) 

结果:
J
a
c
k
y

for是关键字,i是一个变量,后边的name是要被循环的内容,他会把这个name指向的字符串里的每个元素打印出来

格式:

for 关键字 i 变量 in 关键字 要迭代的对象 冒号

缩进 循环体

for 变量 in 要迭代的对象:
    循环体

for i in name:

​ pass

for 关键字

i 变量

in 关键字

name 可迭代对象

可迭代的:能被for循环的

for循环是可以循环的数据结构(就是后面会讲的 可迭代):

  • 字符串(str)
  • 列 表(list)
  • 元 祖(tuple)
  • 字 典(dict)
  • 集 合(set)

唯独不能进行循环的就是 整型(int)和布尔值(bool)

面试:

for i in "alex":

​ pass

print(i) #x

pass ... #占位符

百万年薪python之路 -- 基本数据类型的更多相关文章

  1. 百万年薪python之路 -- 基础数据类型的补充练习

    1.看代码写结果 v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v1.append(6) print(v1) print(v2) [1,2,3,4,5,6] [[1,2,3,4,5 ...

  2. 百万年薪python之路 -- 基础数据类型的补充

    基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...

  3. 百万年薪python之路 -- 基本数据类型练习

    1.代码敲一遍,然后整理笔记 2.有变量name = "aleX leNb" 完成如下操作: 移除 name 变量对应的值两边的空格,并输出处理结果 name = "al ...

  4. 百万年薪python之路 -- 小数据池和代码块

    1.小数据池和代码块 # 小数据池 -- 缓存机制(驻留机制) # == 判断两边内容是否相等 # a = 10 # b = 10 # print(a == b) # is 是 # a = 10 # ...

  5. 百万年薪python之路 -- JS基础介绍及数据类型

    JS代码的引入 方式1: <script> alert('兽人永不为奴!') </script> 方式2:外部文件引入 src属性值为js文件路径 <script src ...

  6. 百万年薪python之路 -- MySQL数据库之 常用数据类型

    MySQL常用数据类型 一. 常用数据类型概览 # 1. 数字: 整型: tinyint int bigint 小数: float: 在位数比较短的情况下不精确 double: 在位数比较长的情况下不 ...

  7. 百万年薪python之路 -- 面向对象之三大特性

    1.面向对象之三大特性 1.1封装 封装:就是把一堆代码和数据,放在一个空间,并且可以使用 对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封 ...

  8. 百万年薪python之路 -- 面向对象之继承

    面向对象之继承 1.什么是面向对象的继承 继承(英语:inheritance)是面向对象软件技术当中的一个概念. 通俗易懂的理解是:子承父业,合法继承家产 专业的理解是:子类可以完全使用父类的方法和属 ...

  9. 百万年薪python之路 -- 模块二

    1. 序列化模块 什么是序列化呢? 序列化的本质就是将一种数据结构(如字典.列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化. 为什么要有序列化模块? 如果你写入文件中的字符串是 ...

随机推荐

  1. @RequestMapping 用法详解之地址映射(转)

    这段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/js ...

  2. 1,eclipse导入项目jdk版本不一样解决方案 2,java报javax.servlet.jsp cannot be resolved to a type

    一:eclipse导入项目jdk版本不一样解决方案 参考博文: https://www.cnblogs.com/chenmingjun/p/8472885.html 选中项目右键 --> Pro ...

  3. C++ 生成随机数 srand()和rand()

    1. rand() rand(产生随机数)表头文件: #include<stdlib.h>定义函数 :int rand(void) 函数说明 :因为rand() 的内部实现是用线性同余法做 ...

  4. HashMap和Hashtable的联系和区别

    实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可以互用,早期的版本一般都是安全的. HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分 ...

  5. 阿里云短信服务开发报错Java.lang.NoClassDefFoundError:com/aliyuncs/exceptions/ClientException

    手机app获取短信验证码功能时候,遇到的问题.使用的是阿里云的短信服务,下载平台demo时运行不报错,但是在service层调用的时候报错 Java.lang.NoClassDefFoundError ...

  6. [scrapy-redis] 将scrapy爬虫改造成分布式爬虫 (2)

    1. 修改redis设置 redis默认处在protection mode, 修改/etc/redis.conf, protected-mode no, 或者给redis设置密码, 将bind 127 ...

  7. ELK 学习笔记之 elasticsearch elasticsearch.yml配置概述

    elasticsearch.yml配置概述: 设置集群名字 cluster.name 定义节点名称 node.name 节点作为master,但是不负责存储数据,只是协调. node.master: ...

  8. 线程、进程概念与Android系统组件的关系

    Android系统是Google公司基于Linux内核开发的开源手机操作系统.通过利用 Linux 内核的优势,Android 系统使用了大量操作系统服务,包括进程管理.内存管理.网络堆栈.驱动程序. ...

  9. web前端体系-了解前端,深入前端,架构前端,再看前端。大体系-知识-小细节

    1.了解前端,深入前端,架构前端,再看前端.大体系-知识-小细节 个人认为:前端发展最终的导向是前端工程化,智能化,模块化,组件化,层次化. 2.面试第一关:理论知识. 2-1.http标准 2-2. ...

  10. 低效sql语句执行缓慢引起的大量占用服务器的CPU问题处理 (优化心得)

    1> 2> 3> 4> 5>删除不良的执行计划后执行时间仍然有150s,这实在是太慢了,继续查看原sql代码,发现父表的关联条件放在了子查询里,这是应该避免的 调整原sq ...