当前位置: 首页 > news >正文

python-(4-1)数据类型的应用(int、float、bool、字符串)

文章目录

  • 一.int、float、布尔类型(bool)
    • 1.int整数
    • 2.float浮点数
    • 3.布尔类型
      • 3-1数字类型转化成bool
      • 3-2字符串类型转化成bool
  • 二.字符串
    • 1.字符串格式化
    • 2.字符串索引和切片
      • 2-1索引
      • 2-2切片
      • 2-2-1从右往左的切片
    • 3.字符串常规操作
      • 3-1 让字符串首字母变成大写
      • 3-2 让字符串中每个单词的首字母变成大写
      • 3-3-1 让字符串中每个字母变成小写
      • 3-3-2 让字符串中每个字母变成大写
      • 3-4 去掉字符串两边的空格
      • 3-5 字符串替换
      • 3-6 字符串切割
      • 3-7 字符串查找
        • 3-7-1 使用`find()`
        • 3-7-2 使用`index()`
        • 3-7-3 使用 `in`
      • 3-8 字符串判断开头和判断数字
  • 三.补充说明
    • 1.查看字符串长度
    • 2.将列表元素连接成一个字符串

一.int、float、布尔类型(bool)

1.int整数

表示整数,可以进行加减乘除运算,大小比较,在某一个特定的区间内可以表现的很清楚

2.float浮点数

表示小数,数据范围是无限的

在计算10与3的商时,给出的结果如下
在这里插入图片描述

小数点的最后一位是5,原因如下:(其他计算机语言也有该类问题)

表示小数,小数的数据范围是无限的
而计算机是一个二进制产品(只有0和1),表示小数很困难。
因此计算机表示一个小数是有误差的,“5”就是误差,表示接近这个结果。

3.布尔类型

用来进行条件判断,取值范围只有TrueFalse,也可以进行基础数据类型之间的转换

3-1数字类型转化成bool

在python中,所有非零的数字转换成bool都是True,只有零是False
在这里插入图片描述

既然非零数字的布尔值都是True那么在写while死循环时可以直接用数字代替

在这里插入图片描述

3-2字符串类型转化成bool

所有非空字符串都是True,空字符串都是False
在这里插入图片描述

综上所述:python基本数据类型中,表示空的东西都是False,不空的东西都是True

二.字符串

1.字符串格式化

name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))
hobby = input("请输入你的爱好:")

s1 = "我叫%s,我今年%d岁,我喜欢%s" % (name, age, hobby)
s2 = "我叫{},我今年{}岁,我喜欢{}".format(name, age, hobby)
s3 = f"我叫{name},我今年{age}岁,我喜欢{hobby}"
print(s3)

其中%s是万能的,不仅可以作为字符串占位,也可以是浮点数占位
使用%d是占位整数
使用%f是占位小数

执行上述python代码后,交互式结果如下:
在这里插入图片描述

2.字符串索引和切片

定义一个字符串str="Hello World"

在这里插入图片描述

2-1索引

如果要获得字符串中元素W,代码如下

str = "Hello World"
print(str[6])

索引是从字符串中提取某个数据内容

2-2切片

切片是从字符串中提取某部分(区间)数据内容

获得从e开始,到W结尾的数据段内容
str = "Hello World"
print(str[1:7])

由此可知str[m:n]的取值范围是从m到n,取得到m,取不到n
如果从头开始取,前面的可以省略str[:n]
同理,如果想取到尾部,后面的也可以省略str[m:]

如果使用负数的索引,依旧是从左往右筛取,最后一个数字位取不到

str = "Hello World"
print(str[-3:-1])

最后的结果是rl,索引-1位置的d取不到

2-2-1从右往左的切片

将字符串元素反方向输出

str = "Hello World"
print(str[::-1])

输出结果如下

dlroW olleH

中括号的第二个冒号后面的-1表示,步长为1的从右往左的切片方式
在2-2中所有从左往右的切片,第二个冒号后面我们默认为1的步长,故省略

在这里插入图片描述

公式str[start:end:step]表示从start切割到end,但不包括end,每step个元素中取一个元素
其中的start和end的数字可以随意设置,可以有正数有负数,只要能表示某区间段的内容即可
其中step数值为正,表示从左往右的顺序截取;数值为负,表示从右往左截取。它必须与start和end设置的方向保持一致。换句话说,start和end确定后,step的正负也确定了,截取必须是从start开始,到end结束。
(此处如果不理解,建议自己随意设置字符串,随便取数字试一下,就懂了)

3.字符串常规操作

字符串的操作一般不会对原字符串产生影响,会返回一个新的字符串

3-1 让字符串首字母变成大写

s = "python"
s1 = s.capitalize()
print(s1)

3-2 让字符串中每个单词的首字母变成大写

它会将一段连贯的英文字母当作一个单词

s = "nice to meet you"
s1 = s.title()
print(s1)

3-3-1 让字符串中每个字母变成小写

s = "HELLO WORLD"
s1 = s.lower()
print(s1)

3-3-2 让字符串中每个字母变成大写

s = "hello world"
s1 = s.upper()
print(s1)

此处常用作验证码忽略大小写的匹配

verify_code = "s8Hk"
user_input = input(f"请输入验证码({verify_code}):")
if verify_code.upper() == user_input.upper():
    print("验证码正确")
else:
    print("验证码不正确")

交互式执行结果如下:
在这里插入图片描述

3-4 去掉字符串两边的空格

str = "  I have a dream  "
str1 = str.strip()
print(str1)

相关案例:输入用户名和密码,即使前后有空格,也要登陆成功。

username = input("请输入用户名:").strip()
password = input("请输入密码:").strip()
if username == "root":
    if password == "123456":
        print("输入正确!")
    else:
        print("输入错误!")
else:
    print("输入错误!")

在进行交互式输入用户名和密码时,我的前后都有空格,但不影响最终结果的正确
在这里插入图片描述

在python官方文档中,strip()作用是去掉字符串左右两端的空白符(空格,\t,\n)

3-5 字符串替换

举例说明:去掉字符串中所有的空格
换句话说,将字符串所有的空格替换成“空”

str = "  He is a cool boy "
str1 = str.replace(" ", "")
print(str1)

最后代码执行结果是:Heisacoolboy

3-6 字符串切割

举例说明:将下列字符串以下划线为单位进行切割str = "Linux_Docker_Centos_Python_Java"

代码如下:

str = "Linux_Docker_Centos_Python_Java"
str1 = str.split("_")
print(str1)
print(type(str1))

切割后的内容会储存在列表中,用中括号表示,执行结果如下:

在这里插入图片描述
用什么切割,就会损失掉什么。用下划线切割,所得结果就没有下划线。

3-7 字符串查找

3-7-1 使用find()

举例说明:查找字符串中”灰太狼“是否存在
在这里插入图片描述

返回结果是6,表示存在该元素,并且位置在索引的”6”处。
如果返回结果是-1,表示该字符串不存在要查找的元素

3-7-2 使用index()

find()用法相同,区别是当它找不到元素时,不会返回-1,而是直接报错

3-7-3 使用 in

在这里插入图片描述

如果元素存在,返回True;否则返回False。
也可以判断是否不存在

print("灰太狼大王" not in str)

3-8 字符串判断开头和判断数字

举例说明一:交互式输入一个名字,判断是否姓王
在这里插入图片描述

举例说明二:饭卡充值,判断是否是整数数字

money = input("请输入充值金额:")
if money.isdigit():
    money = int(money)
    print("充值成功!")
else:
    print("充值失败,请输入数字...")

三.补充说明

1.查看字符串长度

str = "fantastic"
print(len(str))

2.将列表元素连接成一个字符串

在这里插入图片描述

相关文章:

  • [Interview]Java 面试宝典系列之 Java 多线程
  • 纷享销客《2022新增长系列之快消行业橙皮书》重磅发布
  • 2023秋招面试准备
  • 【学习笔记】(数学)线性代数-矩阵的概念和特殊矩阵
  • 用ARM进行汇编语言编程(2)算数指令,CPSR寄存器与逻辑运算
  • 计算机毕业设计ssm趣评美食管理评论系统lrt3w系统+程序+源码+lw+远程部署
  • 《JavaScript从入门到精通》|变量作用域|垃圾回收|闭包【函数进阶篇】
  • 工程项目管理概述
  • 【Q-Learning】TD算法的一种
  • 【QT】Qt调用OCX控件详解
  • 设立“丰收杯”建设吨粮田 国稻种芯-株洲:破解种粮世界性难题
  • Linux内核设计与实现 第一章 Linux内核简介
  • dubbo java api
  • switch选择结构
  • Vue基础(九)——ElementUI
  • Google 是如何开发 Web 框架的
  • 收藏网友的 源程序下载网
  • Android交互
  • crontab执行失败的多种原因
  • Git学习与使用心得(1)—— 初始化
  • Node + FFmpeg 实现Canvas动画导出视频
  • nodejs调试方法
  • Protobuf3语言指南
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Vue2 SSR 的优化之旅
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 三栏布局总结
  • 数据结构java版之冒泡排序及优化
  • 新手搭建网站的主要流程
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 《天龙八部3D》Unity技术方案揭秘
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • #Linux(帮助手册)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (办公)springboot配置aop处理请求.
  • (三十五)大数据实战——Superset可视化平台搭建
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .Net MVC + EF搭建学生管理系统
  • .NET Remoting学习笔记(三)信道
  • .NET 常见的偏门问题
  • .net 后台导出excel ,word
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET委托:一个关于C#的睡前故事
  • .Net中间语言BeforeFieldInit
  • /etc/shadow字段详解
  • @RestController注解的使用
  • []串口通信 零星笔记
  • [20180129]bash显示path环境变量.txt
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)
  • [Editor]Unity Editor类常用方法