python编程基础-3

python常用数据类型操作

数值

  • 表现形式
    int :二进制0b 八进制0/0o 十进制 十六进制0x
    float:168.2/1.682e2
    complex:a+bj complex(a,b) ab都是浮点数
    python3的整型可以自动调整大小,当作long类型使用
  • 进制转换
# 其他进制转换成二进制
num = 111
print(num)
num = 0x111
print(num)
num = 0b1101  # 二进制
print(num)  # 1*2**3+1*2**2+0*2**1+1*2**0=13
num = 0o34  # 八进制
print(num)  # 3*8**1+4*8**0=28

# 十进制转换成其他进制,整除倒取余
num = 18
print(bin(num))  # 0b10010
print(oct(num))  # 0o22

# 二进制->八进制,整合三位为一位
# 从低位整合3位为1为,高位不够补零 010011 ->23  010->2 011->3
# 二进制->十六进制,整合四位为一位
  • 常用操作
    当int类型和float类型进行算术运算时,结果会被提升为float类型
n1 = 10
n2 = 1.2
result = n1 + n2
print(type(result))

数学函数
内建函数:bs、max、min、round、pow

# 数学函数使用
# 内建函数,不需要导入模块,直接使用
# abs()返回数字绝对值
num = -10
print(abs(num))
# 最大值
print(max(12, 34, 34, 900))
# 最小值
print(min(237, 12, 1, -21))
# round数值的四舍五入
print(round(3.14))
print(round(3.14), 2)  # 保留位数
# pow(x,y)返回x的y次幂
print(pow(2, 3))
print(2 ** 3)

math模块函数:ceil、floor、sqrt、log

# 导入math模块
# 模块函数,要导入工具箱
import math
# math.函数名称(参数)
p1 = 3.1
print(round(p1))
print(math.ceil(p1))  # 向上取整 4
print(math.floor(p1)) # 向下取整 3
# 开平方
print(math.sqrt(16))
print(math.sqrt(17))
# 求对数
print(math.log(10000, 10)) # 4

随机函数

# 随机函数,导入random模块
import random
# random() ,注意[0,1)范围之内的随即小数
print(random.random())
# choice(seq),从一个序列当中随机挑选一个数
seq = [1, 3, 5, 6, 8, 9]
print(random.choice(seq))
# uniform(x,y),[x,y]范围之内的随机小数
print(random.uniform(1, 3))
# randint(x,y),[x,y]范围之内的随机整数
print(random.randint(1, 9))
# randrange(start,stop,step=1),[start,stop)获取给定区间随机整数
print(random.randrange(1, 4))

三角函数

# 三角函数
# sin(x),x接受弧度值,30/180 * pi
# pi数字常量
import math
result = math.sin(1/ 6 * math.pi)  # 进度问题,没取到0.5
print(result)
# degrees(x)弧度转角度
# radians(x)角度转弧度
result = math.sin(math.radians(30))  # 进度问题,没取到0.5
print(result)

布尔类型
是int类型子类

# 布尔类型
print(True + 3) # 4
print(False + 3) # 3
result = issubclass(bool, int)  # 验证bool类型是否是int类型的一个子类
print(result) # True

字符串

  • 非原始字符串和原始字符串
# 字符串常用操作
# 非原始字符串
str1 = 'aaa'
str2 = "bbb"
str3 = '''ccc'''
str4 = """ddd"""
print(str1, str2, str3, str4)
# 转义字符
print("我\"hh\"是") # 我"hh"是
# \在行尾表示续航符
name = "f" \
"fr" \
"123"
print(name)  # ffr123

# 原始字符串 ,是什么就输出什么加上一个r
name = r"我\"hh\"是"
print(name)  # 我\"hh\"是
  • 单双引号,混合使用避免使用引号转义
# 爬虫就是处理字符串
# 单双引号,混合使用避免使用引号转义
name = "我是\"yl\"环境"
print(name)
name = '我是\"yl\"环境'  # 找单引号配对
print(name) # 我是"yl"环境
name = "我是'yl'环境"  # 找单引号配对
print(name) # 我是'yl'环境
# 跨行
str = "s" \  # 续行符
      "ds"
strr = ("s"   # 加上小括号
        "srfhty")
# 三引号换行不用加\
# 可用于注释作用
str1 = """圣诞节
sd
sdfg"""
print(str1)

-字符串拼接

# 字符串拼接
# 方式一加号的使用
resut = "哈哈哈哈" + "嘻嘻嘻"
print(resut)
# 方式二直接把两个字符串放在一起
resut = "哈哈哈哈"   "嘻嘻嘻"
print(resut) # 哈哈哈哈嘻嘻嘻
# 方式三字符串模板
resut = "哈哈哈哈%s,我是数字%d" % ("嘻嘻嘻",123)
# 哈哈哈哈嘻嘻嘻,我是数字123
print(resut)
# 方式四字符串乘法
print("sz\t" * 10) # sz	sz	sz	sz	sz	sz	sz	sz	sz	sz	
  • 字符串切片
# 字符串切片:获取字符串某个片段
# 一个字符
# name[]使用下标值获取
name = "123456789" 
print(name)  # 123456789
print(name[4]) # 5
# -1存储最后一个位置你
print(name[-1]) # 9
# 获取字符串片段
# name[起始:结束:步长]
# 其实包含,结束不包含,起始默认为0,结束默认len(name),步长默认值1
# 步长>0从左到右,步长<0,从右到左
print(name[:5:]) # 12345 结束不包含
print(name[0::]) # 123456789
print(name[0::4])  # 1+4=5 159
print(name[3::3])  #  47
print(name[5:2:-2])  # -2往前减2  64
  • 函数操作
    1、查找
# 字符串函数操作
# 内建函数直接使用
# 对象方法,对象.方法(操作)
# 查找计算
# 计算字符串的字符个数
name = "sjhdcyjb世界\n杯"  # \n整体一个字符
num = len(name)
print(num) # 12 \n转义符只算一个
# 查找子串索引位置
# find(sub,start=0,end=len(str))
# sub-需要检索的字符串 star-起始位置,默认为0 end-结束位置
# 从左往右查找
# 区间是[start,end),不包括end
# 未查找到返回-1
name = "我是yl  yl"  # \n整体一个字符
num = name.find("yl")
print(num) # 2

# rfind()
# 从右往左查找
name = "我是ylyl"  # \n整体一个字符
num = name.rfind("是")
print(num) # 1 子串索引位置为1

# index
# 左到右
# 获取子串索引位置
# 未查找到返回异常
name = "我是yl  yl"  # \n整体一个字符
num = name.index("yl")
print(num) # 2
# rindex
# 右到左
name = "我是yl  yl"  # \n整体一个字符
num = name.rindex("yl")
print(num) # 6  w-0 是-1 y-2 ... y-6 l-7

# count 计算子串出现次数
# count(sub,start=0,end=len(str))
name = "我是ylylyl"  # \n整体一个字符
num = name.count("yl") 
print(num) # 3

2、转换

# 字符串转换操作
# replace(old,new[,count])
# count表示替换的个数,默认表示替换全部
name = "我是yl  yl"  # \n整体一个字符
num = name.replace("yl", "z", 1)
print(num) # 我是z  yl
# 不会修改原来字符串本身
print(name) # 我是yl  yl

# capitalize
# 首字母大写
name = "x我是yl  yl"  # \n整体一个字符
num = name.capitalize()
print(num) # X我是yl  yl
# title 字符串中每个单词的首字母大写
name = "x我是yl  yl wo shi hua"  # 连在一起默认一个单词
num = name.title()
print(num) # X我是Yl  Yl Wo Shi Hua
# lower 每个字符变成小写
# upper 字符串每个字符都变成大写

3、填充压缩

# 字符串压缩填充
# 有字符串位置才填充
# 填充字符串只能有一个字符 一个不能是"xx"
# ljust
# 根据指定字符(1个),将原字符串填充够指定长度
# ljust(width,fillchar)
# l表示原字符串靠左
# rjust r表示原字符串靠右
name = "w我"  # 连在一起默认一个单词
print(name.ljust(6, "x")) # w我xxxx
print(name.rjust(6, "x")) # xxxxw我

# center
# 原字符串居中
name = "abcdef"
print(name.center(19, "Y")) # YYYYYYYabcdefYYYYYY

# lstrip
# 移除所有的原字符串指定字符串
# lstrip(char)
# l从左侧开始移除
name = "wooooo  si  yl  "
print("|" + name.lstrip() + "|") # |wooooo  si  yl  | 左侧移除空格
print("|" + name.lstrip("wo") + "|")  # 移除w和o单独字符 |  si  yl  |
print("|" + name + "|") # |wooooo  si  yl  |
# 右侧移除
name = "wooooo yl si  yl"
print("|" + name.rstrip() + "|") # |wooooo yl si  yl|
print("|" + name.rstrip("yl") + "|")  # 移除y和l单独字符 |wooooo yl si  |

4、分割拼接

# 字符串分割拼接
# split
# 将一个大的字符串分割成几个子字符串
info = "sz-18-180"
resut = info.split("-")
print(resut) # ['sz', '18', '180'] 列表
print(info) # sz-18-180

# 指定分割次数,分割三次有四份
info = "sz-18-180-shd-1783-1hd"
resut = info.split("-", 3)
print(resut) # ['sz', '18', '180', 'shd-1783-1hd']
print(info) # sz-18-180-shd-1783-1hd

# partition
# 根据指定分隔符,返回元组(分隔符左侧内容,分隔符,分隔符右侧)
# tuple原则类型
# 左侧开始查找
info = "sz-18-180-shd-1783-1hd"
resut = info.partition("-") 
print(resut) # ('sz', '-', '18-180-shd-1783-1hd')
print(info)# sz-18-180-shd-1783-1hd

# rpartitionr
# 右侧开始查找分隔符
info = "sz-18-180-shd-1783-1hd"
resut = info.rpartition("-")
print(resut) # ('sz-18-180-shd-1783', '-', '1hd')
print(info) # sz-18-180-shd-1783-1hd

# splitlines
# 按照换行符(\r,\n),将字符串拆成多个元素,保存到列表中
# list类型
# splitlines(keepends)
# keepends 参数是否保留换行符
wo = "wo \n shi \r yl"
resut = wo.splitlines()
print(resut) # ['wo ', ' shi ', ' yl']
print(wo)
wo = "wo \n shi \r yl"
resut = wo.splitlines(True)  # 保留分隔符
print(resut) # ['wo \n', ' shi \r', ' yl']
print(wo)

# join 根据指定字符串,将给定可迭代对象,进行拼接
# 可迭代对象:可以使用for循环遍历
# join(iterable)
# 可迭代对象:字符串、元组、列表
items = ["yl", "sd", "wuxie"]
resut = "-".join(items)
print(resut) # yl-sd-wuxie
resut = ",".join(items)
print(resut) # yl,sd,wuxie

5、判定

# 字符串判定操作
# isalphs 字符串是否所有字符都是字母,不包括数字,特殊符号,标点符号
# 返回值:是否全是字母,bool
name = "sz,"
print(name.isalpha()) # False

# isdigit
#  字符串是否所有字符都是数字
name = "123"
print(name.isdigit()) # True

# isalnum
# 字符串是否所有字符都是数字或者字母
# isspace
# 字符串是否都是空白
# 包括空格,缩进,换行等不可见转义符
name = " \n"
print(name.isspace()) # True

# startswith
# 字符串是否以某个前缀开头
name = "2019-10-16-02: 某某报告.xls"
print(name.startswith(2019-10-16-02))  
print(name.startswith("9-s", 3))  # 开始从第三个元素(0 1 2)即9判断
name = "2019-10-16-02: 某某报告.xls"
print(name.startswith("20", 0, 3)) # 0开始-3结束

# endswith
name = "2019-10-16-02: 某某报告.xls"
print(name.endswith(".xls"))

# 补充
# in
# 判定一个字符串是否被另一个字符串包含
# not in 不被包含
print("yl" in "wo shi yl")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值