整数 -- 数字(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. ASP.NET Core 3.0 原生DI拓展实现IocManager

    昨天.NET Core 3.0 正式发布,创建一个项目运行后发现:原来使用的Autofac在ConfigureServices返回IServiceProvider的这种写法已经不再支持.当然Autof ...

  2. 关于svn更新失败,clearup异常解决

    直接上主题: 1. 下载sqlite3工具(https://files.cnblogs.com/files/eric-fang/sqlite-tools-win32-x86-3210000.zip), ...

  3. python 切片步长

    python切片 切片:list变量[值下标:结束值下标]  什么意思呢? 就是获取 list中 下标从定义的位置开始获取数据到  自定义的下标位置结束, 但是切片有个规矩就是顾头不顾尾, 举个例子 ...

  4. 如何更规范化编写Java 代码

    如何更规范化编写Java 代码 Many of the happiest people are those who own the least. But are we really so happy ...

  5. Java的EOF标识?

     这篇是关于JAVA中EOF标识的讲解,之前在工作上碰到过一个问题,有人问过,不能通过判断EOF来知道文件有没有读取完毕吗?其实,还真不能.  直接从JDK接口文档入手,以FileInputStrea ...

  6. HashMap和Hashtable的联系和区别

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

  7. 今天第一次解决了程序在未装VS和XP下运行的问题

    http://www.cnblogs.com/zero5/p/3162948.html  一位素不相识的朋友做的代码雨屏保程序 - 残雪孤侠 - 博客园   上面是我的BLOG 群共享里,有程序和代码 ...

  8. mysql数据库安全性配置——日志记录

    一:开启数据库日志记录 (1)在查看数据库是否开启日志记录,默认是OFF,即关闭状态.(可在数据库中执行该查询语句,也可在服务器端执行) show variables like 'log_bin'; ...

  9. 一个PHP文件搞定微信H5支付

     / 更新于 2018-07-02 / 8 条评论 过年期间也坚持要撸码啊接着给博客除草,在这个小除夕是情人节的一天,祝大家新年快乐,情人节能够顺利脱单~~~ 回归正题,这篇文章介绍一下微信H5支付, ...

  10. C#中winform中panel重叠无法显示问题

    C#中winform中panel重叠无法显示问题: 最近开发一个项目有个需求是需要多个模式来回切换的,本来考虑使用多个窗口来实现这个功能,但是这样做浪费资源,而且工作量大,所以想到使用panel控件来 ...