目录
2、lower()、upper()分别将字符串转为小写、大写
3、 replace():字符串代替;split():字符串拆分
系列文章目录
Python学习日记1--数据类型之数字与字符串
前言
现如今,ChatGPT、文心一言等大模型风靡全球,其中涉及到基于Python语言进行的深度学习、数据爬取等内容使得学习Python语言变得十分重要。同时,Python因为其第三方库的存在,在代码仿真等方面也有着独特的优势。
本文旨在记录学习Python的历程,仅仅为了自身学习使用,方便自己记录一些可能会遗忘的知识点,为之后学习了解机器学习等更深层次知识打下基础。
一、Python的数据类型总览
该图转自https://www.w3school.com.cn/python/python_datatypes.asp
二、Python的数据类型
1.数字
数字的类型有三类,分别为:
整型int、浮点数float、复数complex:他们都没有大小(即数据长度\位数)限制!这一点和C语言有着很大的区别,至于他们为什么没有大小限制,可以移步此篇文章:https://www.cnblogs.com/ChangAn223/p/11495690.html
当然,这三类是可以强制类型转换的,但是需要注意的是:复数无法转移为int或者float变量(即使虚部为0,也无法转换)
代码如下(示例):
x_int=1 #这是一个int类型的变量 y_float=1.25 #这是float类型 z_complex=1+0j #复数类型,赋值时,需要用j来表示虚部 #强制类型转换 x_float = float(x_int) x_complex = complex(x_int) y_int=int(y_float) #对于float转化为int,会向下取整 y_compelx=complex(y_float) #z_int=int(z_complex) #此处会报错!! print("关于x的变量:") print(type(x_int),x_int) #type可以显示变量的类型 print(type(x_float),x_float) print(type(x_complex),x_complex) print("关于y的变量:") print(type(y_float),y_float) print(type(y_int),y_int) print(type(y_compelx),y_compelx) print("关于z的变量:") print(type(z_complex),z_complex)
可以得到输出结果为:
关于int、float、complex的其他说明可以移步:(多种进制、数字分隔符)
https://blog.csdn.net/yelitoudu/article/details/117407685
另外有一个比较有趣的事情,即浮点算术:争议和限制。可以参考:
https://docs.python.org/zh-cn/3/tutorial/floatingpoint.html
2.字符串
Python语言对比C语言这类更加基础的语言,做到了更加简单的程度。例如,在Python中没有char类型,字符串既为数组,一个字符便是一个数组,例如x='a',那么a就是x[0].
字符串字面量:
python中的字符串字面量由单引号或双引号括起的。(单引号和双引号在此处作用是一致的)
x='Hello,world!' #其中Hello,world就是字面量
print(x)
关于多行字符串:
可以使用三个引号,这样输出的样式既为三引号中的样式。
#关于多行字符串
a = """Python is a widely used general-purpose, high level programming language.
It was initially designed by Guido van Rossum in 1991
and developed by Python Software Foundation.
It was mainly developed for emphasis on code readability,
and its syntax allows programmers to express concepts in fewer lines of code."""
print("a的字符串输出:")
print(a)
b = '''Python is a widely used general-purpose, high level programming language. \nIt was initially designed by Guido van Rossum in 1991 \nand developed by Python Software Foundation. \nIt was mainly developed for emphasis on code readability, \nand its syntax allows programmers to express concepts in fewer lines of code.'''
print("b的字符串输出:")
print(b)
字符串数组运用:
x='Hello,world!'
print(x[0]) #会输出H
y=x[2:5]
print(y) #这是一种裁剪的方法,将x这个字符串裁剪为了一个新的字符串y
print(x[2:5]) #正索引:从位置2(实际上第3个字符)到位置5(不包括x[5],实际上就是第5个字符),会输出llo
print(x[-5:-2]) #负索引:从倒数第5个位置输出到倒数第(2+1)个位置,会输出orl
#其实有一个简单记忆方法:正索引的时候看做数组,自然需要加一(字符串是从0开始计数)
# 负索引的时候只谈倒数第几个(并不从0计数),至于输出的长度既为[a:b]中a与b的差值
#获取字符串长度(数组大小)
print(len(x)) #获取字符串长度
字符串的操作:
1、strip()可以删除开头和结尾的空白字符
至于什么是空白字符,我通过询问kimi得到了答案,经过实践的确如此。
在Python中,空白字符包括以下几种:
- 空格(Space):ASCII码为32的字符。
- 制表符(Tab):ASCII码为9的字符。
- 换行符(New Line):ASCII码为10的字符,在不同操作系统中可能有所不同,如Unix/Linux系统中为
\n
,Windows系统中为\r\n
。 - 回车符(Carriage Return):ASCII码为13的字符,通常与换行符一起使用,如在Windows系统中。
- 垂直制表符(Vertical Tab):ASCII码为11的字符。
- 从属分隔符(Form Feed):ASCII码为12的字符。
- 空行(Empty Line):包含上述空白字符之一或多个的行。
x='''Hello,world! \r \r\n
'''
#注意,初始化的时候在!之后添加了一个空格一个回车符一个制表符一个换行符和一个空行
#strip()可以删除开头和结尾的空白字符
a=x.strip()
print(len(x))
print(len(a))
得到输出结果为:
2、lower()、upper()分别将字符串转为小写、大写
x='Hello,world!'
a=x.lower() #全部转为小写字符
b=x.upper() #全部转为大写字符
c=x[2:5].lower()#这样并不能将局部转为小写
print(x)
print(a)
print(b)
print(c)
输出结果为:
3、 replace():字符串代替;split():字符串拆分
x='Hello,world!'
print(x.replace('Hello','你好')) #将Hello替换为你好
print(x.replace('hello','你好')) #没有得到匹配,没有完成替换
print(x.split(",")) #找到分隔符之后拆分成两个子字符串(列表类型)
print(x.split(';')) #没有找到,不会拆分;但是数据类型从str变为了list列表类型
输出结果为:
字符串操作比较丰富,具体可以参考:
https://www.w3school.com.cn/python/python_strings.asp
3.字符串与数字的转换
和数字的强制类型转换相似。
#数字转换为字符串
print('数字转换为字符串')
x_int=101
x_float=float(x_int)
x_int_str=str(x_int)
x_float_str=str(x_float)
print(type(x_int),x_int)
print(type(x_float),x_float)
print(type(x_int_str),x_int_str)
print(type(x_float_str),x_float_str)
#字符串转换为数字
print('字符串转换为数字:')
a=float(x_int_str)
b=int(x_int_str)
print(type(a),a)
print(type(b),b)
#c=int(x_float_str) #会报错,因为int() 函数不能理解小数点,它只能处理没有小数点的纯数字字符串
#如果想要完成该转换,只能“曲线救国”,将其想转换为float,再变为int
输出结果为: