设为首页 加入收藏

TOP

Python基础(三)(一)
2019-09-15 00:33:23 】 浏览:60
Tags:Python 基础

今日主要内容

  • 整型
    • 范围
    • 进制转换
  • 字符串
    • 索引
    • 切片
    • 部分方法详解
  • for循环

一、整型(int)

(一)整型的范围

  • 32位:-2 ** 31 ~ 2 ** 31 -1
  • 64位:-2 ** 63 ~ 2 ** 63 -1

(二)进制转换

  1. 十进制转换二进制:

    • 短除法:与2短除,除到商为0,从下向上取余

    • bin() 函数:将十进制数转换为二进制数

      num = 13
      print(bin(num))  # 1101
  2. 二进制转换十进制

    • 算术法:从右向左依次乘2的n次方(n为0,1,2,...),最后相加

    • int() 函数:其中第二个参数传入几进制数,第一个参数传入对应进制数

      num = "1101"
      print(int(num, 2))  # 13

(三)不可变数据类型

  1. 什么是不可变/可变类型数据

    • 能在原地修改的数据是可变类型数据
    • 不能再原地修改的数据(修改就会开辟新的内存空间)是不可变类型数据
  2. 整型是不可变类型数据

  3. id() 函数:查看内存地址

    a = 10
    print(id(a))  # 1956675984
    a = a + 1
    print(id(a))  # 1956676016

二、字符串(str)

(一)索引

  1. 什么是索引?

    • 索引就是下标,python中索引是从0开始的
  2. 索引只给有序数据类型使用

  3. 索引的表示

    • str[下标]
  4. 正索引和反索引

    • 正索引:从左到右依次 0,1,2 ...
    • 反索引:从右到左依次 -1,-2,-3 ...
    a = "粪发涂墙的郭老湿"
    print(a[0])  # 粪
    print(a[3])  # 墙
    print(a[5])  # 郭
    print(a[-3])  # 郭
  • 注意:索引时,超出最大索引值会报错

    a = "粪发涂墙的郭老湿"
    print(a[10])  # IndexError: string index out of range

(二)切片

  • 上面的例子,如果想要得到"粪发涂墙",只能挨个索引再进行拼接

    a = "粪发涂墙的郭老湿"
    a1 = print(a[0])
    a2 = print(a[1])
    a3 = print(a[2])
    a4 = print(a[3])
    print(a1 + a2 + a3 + a4)  # 粪发涂墙

    是不是很麻烦 ,可以利用切片

  1. 切片只给有序数据类型使用

  2. 切片格式

    • str[start: end: step]
    • 默认step为1
  3. 特点:顾头不顾腚

    • 从开头切片不用输入start;

      切到结尾不用输入end;

      从开头切到结尾都不用输入

    a = "粪发涂墙的郭老湿"
    mes = a[:4]  # 从开头切不用输入start
    print(mes)  # 粪发涂墙
    • step为步长,可以利用step间隔切片
    a = "粪发涂墙老污郭"
    print(a[::2])  # 粪涂老郭
    • 步长若为负数,则反向切片

      注意:若反向切片,start和end的位置是从后往前取的

    a = "粪发涂墙老污郭"
    print(a[::-2])  # 郭老涂粪
    print(a[-2:-6:-1])  # 污老墙涂
    
    • 将字符串反转可以利用切片
    a = "粪发涂墙老污郭"
    a_inversion = a[::-1]
    print(a_inversion)  # 郭污老墙涂发粪
    
  • 索引时,超出最大索引值不会报错

(三)方法详解

  • str.upper() 全部变为大写
    str.lower() 全部变为小写
    str.startswith(n) 判断是否以n开头
    str.endswith(n) 判断是否以n结尾
    str.count(n) 计算n出现的次数
    str.strip() 去掉两端空格、\n、\t
    str.split(n) 以n切割
    str.replace(old, new) 替换
    str.isalnum() 判断是否由数字、中文、字母构成
    str.isalpha() 判断是否由中文、字母构成
    str.isdigit() 判断是否由阿拉伯数字构成
    str.isdecimal() 判断是否由十进制数字构成
  1. str.upper()

    • 将字符串全部变为大写,只对字母生效,对其他不报错
    a = "zxdznb"
    new_a = a.upper()
    print(a)  # 不可变类型,原字符串不变
    print(new_a)  # ZXDZNB
    
  2. str.lower()

    • 将字符串全部变为小写,只对字母生效,对其他不报错
    a = "ZXDZNB"
    new_a = a.lower()
    print(a)  # 不可变类型,原字符串不变
    print(new_a)  # zxdznb
    
  • 应用:登录验证码,不区分大小写

    verify_code = "eF7d"
    while True:
      user = input("账号:")
      pwd = input("密码:")
      while True:
          print(f"验证码:{verify_code}")
          vc = input("请输入验证码:")
          if vc.upper() == verify_code.upper():  # 全部变为大写
              break
          else:
              print("输入错误,请重新输入!")
      if user == "ZXD" and pwd == "zxd123":
          print("欢迎回来")
          break
      else:
          print(”账号密码错误,请重新输入!“)
    
  1. str.startswith(n)

    • 判断字符串是否以参数n开头,输出为布尔值
    • 还可以判断切片的开头
    a = "zxdznb"
    print(a.startswith("z"))  # True
    print(a.startswith("x"))  # False
    
    print(a.startswith("x", 1, 5))  # True
    print(a.startswith("z", 1, 5))  # False
    
  2. str.endswith(n)

    • 判断字符串是否以参数n结尾,输出为布尔值
    • 还可以判断切片的结尾
    a = "zxdznb"
    print(a.endswith("b"))  # True
    print(a.endswith("x"))  # False
    
    print(a.endswith("n", 1, 5))  # True
    print(a.endswith("z", 1, 5))  # False
    
  3. str.count(n)

    • 计算参数n在字符串中出现的次数
    • 还可以切片计算变量n出现的次数
    a = "zxdznb"
    print(a.count("z"))  # 2
    
    print(a.count("z", 0, 3))  # 1
    
  4. str.strip()

    • 默认去掉字符串两端空格、换行符(\n)、制表
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python爬虫笔记【一】模拟用户访.. 下一篇Python基础(六)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目