热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:python3:基本数据类型(int,bool,str)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python3:基本数据类型(int,bool,str)相关的知识,希望对你有一定的参考价值。一

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python3:基本数据类型(int,bool,str)相关的知识,希望对你有一定的参考价值。



一. python基本数据类型



  • int        整数,用来进行数学运算



  • str        字符串,存放少量数据



  • bool     布尔值,用来判断True,False



  • list        列表,存放大量数据,[ ]表示



  • tuple    元组,只读列表,( ) 表示



  • dict      字典,存放大量数据,{key:value}表示



  • set        集合,存放大量数据,不重复



二.整数(int)
所有整数都是int类型。

 

bit_length() 

返回一个数的二进制长度。(了解)

 


a = 2
print(a.bit_length())

结果:
2

a
= 5
print(a.bit_length())

结果:
3



 

说明:十进制转二进制

将正的十进制数除以二,得到的商再除以二,依次类推直到商为零或1时为止,然后在旁边标各步的余数,最后倒着写出来,高位补零就OK了。

技术分享图片

三.布尔值(bool)
取值只有True、False。bool值没有操作

 

1.所有的空都是False,所有的非空都是True。

 


a = 0 # 整数0,False
print(bool(a))

s
= "" # 空字符串,False
print(bool(s))

lst
= [] # 空列表,False
print(bool(lst))

dic
= {} # 空字典,False
print(bool(dic))

a
= None # None表示空,真空,False
print(bool(a))



 

2.类型转换

把xx类型转换成yy类型,yy(xx)

 


str => int        # 字符串转整数

int(s)

 

int => str        # 整数转字符串

str(i)

 

list => tuple    # 列表转字典

tuple(lst)

 

tuple => list    # 字典转列表

list(tu)


四.字符串(str)
在python中,用‘, ", ‘‘‘, """ 引起来的内容被称为字符串。

1.切边和索引


索引

下标,切记,下标从0开始

 


s = "伊丽莎白儿时"
print(s[0])
print(s[1])
print(s[2])
print(s[3])
print(s[4])
print(s[5])
# print(s[6]) # 没有6,报错了,索引不能超过边界

print(s[-1]) # 倒数第一个
print(s[-2])



 

切片

格式:[起始位置:结束位置] 或 [起始位置:结束位置:步长]

特点:1.顾头不顾尾。2.默认从左往右切。

 


s = "伊丽莎白儿时"
print(s[1:3]) # 从1切到3,但是取不到3
print(s[1:100]) # 从1切到100,如果右边已经过了最大值,相当于获取到最后
print(s[1:]) # 从1开始切,切到结尾
print(s[:2]) # 从头开始切,切到2
print(s[:]) # 从头到尾
print(s[-1:-3]) # 安装默认规则,从-1往右切,是怎样都不会切到-3的,方法在下面。
print(s[-3:-1]) # 只能从左到右切

# 给出第三个参数来控制方向,第三个参数叫步长
s = "伊丽莎白儿时"
print(s[-1:-3:-1]) # - 表示反方向,从右往左切。
print(s[1:5:3]) # 从左到右,从1到5,但不包含5,每3个取1个。
print(s[-1:-5:-2]) # 从右到左,从-1到-5,但不包含-5,每2个取1个。



 

2.字符串的相关操作


字符串是不可变的对象,所有任何操作对源字符串是不会有任何影响的。

2.1.大小写转换


capitalize()

把首字母变成大写

 

lower()

把字母变成小写

 

upper()

把字母变成大写。(重要,标红的都是必记的)

 

swapcase()

大小写互换

 

casefold()

把字母变成小写。

和lower的区别:

--lower()对某些字符支持不够好。

--casefold()对所有字母都有效,比如东欧一些字母。

 

title()

把每个单词的开头大写。

 


s = "alex is a teacher And wusir is a teacher too"

s1
= s.capitalize() # 只把alex首字母大写,并且测试时发现,把And变成小写的了。
print(s1)

s2
= s.lower() # 全部变小写
print(s2)

s3
= s.upper() # 全部变大写
print(s3)

s4
= s.swapcase() # 大小写转换,大写变小写,小写变大写
print(s4)

s2
= "БB?" # 俄美德
print(s2)
print(s2.lower()) # 德文的B,不会转换
print(s2.casefold()) # 全都可以转换成小写

s
= "alex_is a teacher And wu吴sir is a teacher too"

s5
= s.title() # 只要不是全是字母连接的开头都会大写,alex_is中a和i都大写,wu吴sir中w和s都大写
print(s5)

 



2.2.切来切去


center()

居中

 

expandtabs()

更改tab的长度

 

strip()

去掉空白(空格和换行符)

 

replace()

字符串替换

 

split()

字符串切割

切完的结果是一个列表,列表中装的是字符串,用什么切就会损失掉什么

 


s = "sp"
s1
= s.center(10) # 拉长成10,把原字符串放中间,其余位置补空白
print(s1)

s1
= s.center(10, "*") # 拉长成10,把原字符串放中间,其余位置补*
print(s1)

s
= " alex is a teacher "
s1
= s.strip() # 去掉左右两侧的空格,中间的空格不会影响
print(s1)

s2
= s.lstrip() # 去掉左边的空格,left
print(s2)

s3
= s.rstrip() # 去掉右边的空格,right
print(s3)

s
= "sp alex sp"
s1
= s.strip("sp") # 去掉左右两边的sp,空格不会去
print(s1)

s2
= s.lstrip("sp") # 去掉左边的sp,空格不会去
print(s2)

s3
= s.rstrip("sp") # 去掉右边的sp
print(s3)

s
= "alex_wusir_taibai_ritian"
s1
= s.replace("_", "A") # 将_,全部替换为大写A
print(s1)

s2
= s.replace("_", "") # 将_,全部替换为空(不是空格)
print(s2)

s3
= s.replace("_", "A", 2) # 将_,替换为A,从左到右替换2个
print(s3)

s
= "alex_wusir_taibai_ritian"
lst
= s.split("taibai") # 用taibai切,那生成的列表中,就会去掉taibai
print(lst)

s
= """我是谁
你是谁
"""
lst
= s.split("
") # 去掉换行符(

print(lst)



 

2.3.格式化输出


format()

 


# 输出的结果是一样的
s = "我叫%s, 我今年%s岁了" % ("周杰伦", "40")
print(s)

s
= "我叫{}, 我今年{}岁了".format("周杰伦", "40") # 按位置格式化
print(s)

s
= "我叫{0}, 我今年{1}岁了".format("周杰伦", "40") # 指定位置
print(s)

s
= "我叫{1}, 我今年{0}岁了".format("40", "周杰伦")
print(s)

s
= "我叫{name}, 我今年{age}岁了".format(name="周杰伦", age=40) # 指定关键字
print(s)

 



2.4.查找


startswith()

以...开头

 

endswith()

以...结尾

 

count()

统计xx在字符串中出现的次数

 

find()

查找xx在字符串中出现的位置, 只找第一次出现的位置, 没有就返回-1

 

index()

查找xx在字符串中出现的位置, 只找第一次出现的位置, 当字符串不存在的时候, 报错

 


s = "Tom is a cat"
print(s.startswith("Tom")) # 是否以Tom开头, 注意区分大小写
print(s.endswith("cat")) # 是否以cat结尾

print(s.count("a")) # 统计a出现的次数

print(s.find("a")) # 返回 7
print(s.find("A")) # 返回 -1
print(s.find("a", 8, 12)) # 切片找, 返回10

print(s.index("a")) # 返回 7
#
print(s.index("A")) # 会报错

 



2.5.条件判断


isdigit()

是否由数字组成

 

isalpha()

是否由字母组成

 

isalnum()

是否由数字和字母组成

 

isnumeric()

是否有数字组成, 可识别中文

 

isupper()

判断字符串中包含的字母是否全为大写

 

islower()

判断字符串中包含的字母是否全为小写

 


# 只列举正确(True)的判断
s1 = "123"
print(s1.isdigit()) # 数字

s2
= "abc"
print(s2.isalpha()) # 字母

s3
= "123abc"
print(s1.isalnum()) # 数字
print(s2.isalnum()) # 字母
print(s3.isalnum()) # 数字和字母

s
= "壹仟贰佰五十六萬拾"
print(s.isnumeric())

s1
= "AND"
s2
= "[email protected]"
print(s1.isupper())
print(s2.isupper())

s3
= "and"
s4
= "[email protected]"
print(s3.islower())
print(s4.islower())

 



2.6.计算字符串的长度


len()

python内置函数,通用的

 


s = "abcd"
print(len(s))

 



3.for循环


for 变量 in 可迭代对象:

    循环体

else:

    当循环结束的时候会执行

 

解释:

可迭代对象: 可以一个一个往外取值的对象.

 


s = "我是谁"
# 使用while循环
n = 0
while n < len(s):
print(s[n])
n
= n + 1

# 迭代
#
使用for循环
for c in s:
print(c)



 

in的小结:

in的两种用法



  • 在for中, 是把每一个元素获取到赋值给前面的变量.



  • 不在for中, 判断xxx是否出现在str中




 

推荐阅读
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Python 序列图分割与可视化编程入门教程
    本文介绍了如何使用 Python 进行序列图的快速分割与可视化。通过一个实际案例,详细展示了从需求分析到代码实现的全过程。具体包括如何读取序列图数据、应用分割算法以及利用可视化库生成直观的图表,帮助非编程背景的用户也能轻松上手。 ... [详细]
  • STM32串口通信:完整指南
    众所周知,串口通信是MCU最基本的通信方式,对于STM32来说也是如此。本文重点讲述STM32单片机的串口通信,主要包括的内容是:通信基础知识、串口通信原理、USART有关寄存器和 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
author-avatar
jing阿囡宝_478
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有