首页 > 编程语言 >Python中级之数据类型的内置方法1(数字类型和字符串)

Python中级之数据类型的内置方法1(数字类型和字符串)

时间:2024-05-08 15:48:39浏览次数:13  
标签:输出 内置 name Python ligo 数据类型 字符串 int print

【一】数字类型

【1】整数类型(int)

(1)定义

  • 直接用整数定义,整数类型的值不能修改
num = 6

(2)内置方法

  • int.bit_length()
#返回整数的二进制表示中最高位的位数,不包括符号和前导零。
a = 10
b = a.bit_length()
print(b)
# 输出 4
  • int.to_bytes(length, byteorder, signed)
# 将整数转换为字节数组。
# 参数length指定生成的字节数组的长度,byteorder指定字节顺序,signed指定是否考虑整数的符号。
a = 10
b = a.to_bytes(2,byteorder='big',signed=False)
print(b)
#输出 b'\x00\n'
  • int.from_bytes(bytes, byteorder, signed)
# 将字节数组转换为整数。
# 参数bytes是输入的字节数组,byteorder指定字节顺序,signed指定是否考虑整数的符号
a = b'\x00\n'
b = int.from_bytes(a,byteorder='big',signed=False)
print(b)
# 输出 10
  • int.add(other)
#整数的加法运算
a = 10
b = 5
c = a.__add__(b)
print(c)
#输出 15
  • int.sub(other)
#整数的减法运算
a = 10
b = 5
c = a.__sub__(b)
print(c)
#输出 5
  • int.mul(other)
#整数的乘法运算
a = 10
b = 5
c = a.__mul__(b)
print(c)
#输出 50
  • int.truediv(other)
#整数的真除法运算
a = 10
b = 5
c = a.__truediv__(b)
print(c)
#输出 2.0
  • int.floordiv(other)
#整数的整除法运算
a = 10
b = 5
c = a.__floordiv__(b)
print(c)
#输出 2
  • int.mod(other)
#整数的取模运算
a = 10
b = 5
c = a.__mod__(b)
print(c)
#输出 0
  • int.pow(other, modulo=None)
#整数的幂运算
a = 10
b = 5
c = a.__pow__(b)
print(c)
#输出 100000

(3)类型强转

  • 可以将纯整数的字符串直接转换成整型(如果包含任意非整数符号,会报错)
#正确示例
a = "1234"
b = int(a)
print(b,type(b))
#输出 1234 <class 'int'>

#错误示例(含有非整数符号)
a = "3.14"
b = int(a)
print(b,type(b))
'''
Traceback (most recent call last):
  File "D:\Python\pythonProject\pythonProject1\demo5.py", line 119, in <module>
    b = int(a)
ValueError: invalid literal for int() with base 10: '3.14'
'''

(4)进制转换

整数类型提供了一些方法来进行进制转换,主要涉及到二进制、八进制、十六进制

  • 十进制转二进制:bin()
a = 10
b = bin(a)
print(b)
#输出 0b1010
  • 十进制转八进制:oct()
a = 10
b = oct(a)
print(b)
#输出 0o12
  • 十进制转十六进制:hex()
a = 10
b = hex(a)
print(b)
#输出 0xa
  • 其他进制转十进制:int()
  • int()函数可以将不同进制的字符串转换为十进制整数
    • 二进制(以 '0b' 或 '0B' 开头)
    • 八进制(以 '0o' 或 '0O' 开头)
    • 十六进制(以 '0x' 或 '0X' 开头)
a = '0b1010'
b = int(a, 2)
print(b)
# 输出:10

a = '0o12'
b = int(a, 8)
print(b)
# 输出:10

a = '0xa'
b = int(a, 16)
print(b)
# 输出:10

【2】浮点数类型(float)

(1)定义

  • 表示有小数点的数字的数字类型
float = 1.00

(2)内置方法

  • 浮点数类型的内置方法包含数学运算的加减乘除
# 加法
float = 2.5 + 2.4
print(float)
#输出 4.9

# 减法
float = 7.8 - 2.3
print(float)
#输出 5.5

# 乘法
float = 2.5 * 6.0
print(float)
#输出 15.0

# 除法
float = 7.5 / 1.5
print(float)
#输出 5.0

# 取整
float_num = round(1.545741877)
print(float_num)
#输出 2
#由于计算机存储浮点数的方式,可能存在一些精度问题

(4)类型强转

  • 类型强转就是将一个数据类型转换为另一个数据类型
#通过内置函数来类型强转
## 将整数转换为浮点数
int_num = 10
float_num = float(int_num)
print(float_num)
#输出 10.0

# 将浮点数转换为整数
float_num = 5.21
int_num = int(float_num)
print(int_num)
#输出 5
#类型强转在处理不同类型的数据时非常常见,确保数据在执行某些操作时具有相同的类型,以避免出现错误。

【3】判断数字类型

(1)数字类型说明

num1 = b'4'  # bytes
num2 = '4'   # unicode,Python 3 中不需要在字符串前加 'u'
num3 = '四'  # 中文数字
num4 = 'Ⅳ'   # 罗马数字

(2)判断数字类型(isdigit)

# isdigit: bytes, unicode
print(num1.isdigit())  # True
print(num2.isdigit())  # True
print(num3.isdigit())  # False
print(num4.isdigit())  # False

(3)判断小数类型(isdecimal)

# isdecimal: unicode(bytes 类型没有 isdecimal 方法)
print(num2.isdecimal())  # True
print(num3.isdecimal())  # False
print(num4.isdecimal())  # False

(4)判断数字类型(isnumeric)

# isnumeric: unicode, 中文数字, 罗马数字(bytes 类型没有 isnumeric 方法)
print(num2.isnumeric())  # True
print(num3.isnumeric())  # True
print(num4.isnumeric())  # True

(5)无法判断浮点数

# 这三种方法无法判断浮点数
num5 = '4.3'
print(num5.isdigit())    # False
print(num5.isdecimal())  # False
print(num5.isnumeric())  # False

【二】字符串类型(str)

【1】定义

  • 字符串是字符组成的,可以是数字、字母等,通常使用单引号、双引号和三引号来定义
#单引号定义
name = 'ligo'
#双引号定义
name = "ligo"
#三引号定义
name = '''ligo'''
  • 还可以用三引号来定义多行字符串
sentence = '''
My name is ligo,
I am 18 years old.
'''

【2】内置方法(优先)

(1)字符串拼接

  • 字符串拼接是将多个字符串连接在一起形成一个新的字符串。
  • 可以使用 + 运算符来实现字符串拼接。
str1 = 'Hello,'
str2 = 'World!'
str3 = str1 + ' ' + str2
print(str3)
# 输出 Hello, World!

(1)索引取值

[1]正索引取值
#字符串中的每个字符都有一个索引,正索引从0开始,从左到右依次增加
name = "ligo"
char = name[1]
print(char)
#输出 i
[2]反索引取值
#反索引从右到左依次增加,最右边的字符索引为 -1
name = "ligo"
char = name[-1]
print(char)
#输出 o
[3]只能取值,不能修改
name = "ligo"
name[2] = 'd'
'''
Traceback (most recent call last):
  File "D:\Python\pythonProject\pythonProject1\demo5.py", line 180, in <module>
    name[2] = 'd'
TypeError: 'str' object does not support item assignment
'''

(2)切片(顾头不顾尾)

[1]切片顾头不顾尾
  • 切片用于获取字符串的一部分,可以指定起始索引和结束索引
# 从索引1到索引3(不包括3)
name = "ligo"
char = name[1:3]
print(char)
#输出 ig
[2]步长
# 从索引0到索引4(不包括4)步长为2,所以索引0为l,索引2为g
name = "ligo"
char = name[0:4:2]
print(char)
#输出 lg
[3]反向切片
name = "ligo"
char = name[-4:-1] #反向切片索引要从小到大
print(char)
#输出 lig 

(3)计算长度(len)

name = 'ligo'
length = len(name)
print(length)
# 输出: 4

(4)成员运算

  • in 和 not in 用于检查一个字符串是否包含另一个字符串
[1]in
name_list = ['ligo','scott']
name = 'ligo' in name_list
print(name)
#输出 True
[2]not in
name_list = ['ligo','scott']
name = 'Travis' in name_list
print(name)
# 输出 False

(5)去除空格(strip)

  • strip() 方法用于去除字符串首尾的空格,也可以去除特殊字符(例如换行)
[1] 默认 strip
  • 默认情况下,strip() 方法会去除字符串开头和结尾的所有空格。
text = '  Hello, World!  '
stripped_text = text.strip()
print(stripped_text)
# 输出: Hello, World!
[2] 左去除 lstrip
  • lstrip() 方法用于去除字符串开头的空格。
text = '  Hello, World!  '
left_stripped_text = text.lstrip()
print(left_stripped_text)
# 输出: Hello, World!  
[3] 右去除 rstrip
  • rstrip()方法用于去除字符串结尾的空格。
text = '  Hello, World!  '
right_stripped_text = text.rstrip()
print(right_stripped_text)
# 输出: Hello, World!
[4] 去除指定字符
  • 如果需要去除字符串开头和结尾的指定字符,可以传入一个字符串参数给 strip()方法。
text = '(Hello, World!)'
stripped_text = text.strip('()')
print(stripped_text)
# 输出: Hello, World!

(6)切分(split)

  • split() 方法用于将字符串切分成多个子字符串,并返回一个包含切分后子字符串的列表。
[1] 默认切分符
  • 如果不指定切分符,则默认使用空格作为切分符。
text = 'Hello, World!'
split_result = text.split()
print(split_result)
# 输出: ['Hello,', 'World!']
[2] 指定分隔符
  • 可以通过传递一个分隔符参数给 split()`方法来指定切分符。
text = 'apple,orange,banana'
split_result = text.split(',')
print(split_result)
# 输出: ['apple', 'orange', 'banana']

(7)遍历字符串

  • 使用 for 循环可以遍历字符串中的每个字符
name = 'ligo'
for char in name:
    print(char)
# 输出:
# l
# i
# g
# o

(8)字符串重复

  • 使用 * 运算符可以实现字符串的重复
str = 'good'
repeated_str = str * 3
print(repeated_str)
# 输出: goodgoodgood

(9)大小写转换

[1]小写转大写(upper())
#将给定字符串中的所有字母变为大写
name = 'ligo'
upper_name = name.upper()
print(upper_name)
# 输出: LIGO
[2]大写转小写(lower())
#将给定字符串中的所有字母变为小写
name = 'Ligo'
lower_name = name.lower()
print(lower_name)
# 输出: ligo

(10)首尾字符判断

[1]判断字符开头(startswith())
  • startswith()判断字符串是否以括号内指定的字符开头,结果为布尔值True或False
text = 'Python is fun'
result = text.startswith('Python')
print(result)
# 输出: True
[2]判断字符结尾(endswith())
  • endswith()判断字符串是否以括号内指定的字符结尾,结果为布尔值True或False
text = 'Python is fun'
result = text.endswith('fun')
print(result)
# 输出: True

(11)格式化输出

[1] % 输出
# 格式化输出语法一 : %
name = "ligo"
age = 18
height = 180

# 使用 %s 占位符,输出字符串
print("My name is %s." % name)  
# My name is ligo.

# 使用 %d 占位符,输出整数
print("My age is %d." % age)  
# My age is 18.

# 使用 %f 占位符,输出浮点数,默认保留六位小数
print("My height is %f." % height)  
# My height is 180.000000.

# 使用 %.2f 占位符,保留两位小数
print("My height is %.2f." % height)  
# My height is 180.00.

# 使用 %x 占位符,输出十六进制整数
number = 255
print("Number in hex: %x." % number)  
# Number in hex: ff.

# 两个以上的占位符格式化输出
print("My name is %s; My age is %d" % (name, age)) 
# My name is ligo; My age is 18
  • 在上例中,%s%d 是占位符,分别表示字符串和整数,而 (name, age) 是传入这两个占位符的实际值。
  • 占位符类型
    • %s:字符串
    • %d:整数
    • %f:浮点数
    • %x:十六进制整数
[2] formate 输出
  • 使用 format 方法进行格式化输出,通过花括号 {} 表示占位符,然后调用 format 方法传入实际值
name = "ligo"
age = 18
# 格式化输出语法三 : format
print("My name is {}; My age is {}".format(name, age)) #按顺序传入format方法的值
# My name is ligo; My age is 18
[3] f + {} 输出
  • 使用(f + {})进行格式化输出,通过在字符串前加上 fF 前缀,然后在字符串中使用 {} 表示占位符,并在 {} 中直接引用变量。
name = "ligo"
age = 18
# 格式化输出语法二 : f + {}
print(f"My name is {name}; My age is {age}")
# My name is ligo; My age is 18
  • 从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串
res_1 = '%'.join('hello')  # 从字符串'hello'中取出多个字符串,然后按照%作为分隔符号进行拼接
print(res_1)  # h%e%l%l%o

res_2 = '|'.join(['ligo', '18', 'read'])  # 从列表中取出多个字符串,然后按照*作为分隔符号进行拼接
print(res_2)  # ligo|18|read

(13)替换replace

#用新的字符替换字符串中旧的字符
res = 'my name is ligo, my age is 18!'  # 将ligo改为scott
res = res.replace('ligo', 'scott')  # 语法:replace('旧内容', '新内容')
print(res)  # my name is scott, my age is 18!

# 可以指定修改的个数
res = 'my name is ligo, my age is 18!'
res = res.replace('my', 'MY', 2)  # 把两个my都改为MY
print(res)  # MY name is ligo, My age is 18!

(14)判断类型isdigit

#判断字符串是否是纯数字组成,返回结果为True或False
str = '123456'
res = str.isdigit()
print(res)  # True

str = '123456a'
res = str.isdigit()
print(res)  # False

标签:输出,内置,name,Python,ligo,数据类型,字符串,int,print
From: https://www.cnblogs.com/ligo6/p/18179975

相关文章

  • Python安装教程手册(pip路径修改,建立模块搜索)
    下载官网64位exe安装包双击安装,一步步往下走    打开cmd命令行,输入Python-V查看安装版本号,检查是否安装成功  输入pip-V查看pip的版本号,检查是否安装成功  设置pip安装的全局库目录输入python-msite,查看当前默认配置的库目录找......
  • Python中级之数据类型的内置方法3(元祖、布尔、集合)
    【一】元祖类型(tuple)【1】定义元祖类型是有序且不可变的数据类型,通常使用小括号定义(也可以使用逗号)#用逗号定义num_tuple=1,2,3,4,5#用小括号定义num_tuple=(1,2,3,4,5)【2】内置方法(1)类型强转#使用tuple()函数将其他数据类型转换为元组类型num_list=......
  • Python中级之数据类型的内置方法2(字典和列表)
    【一】字符串类型的内置方法(熟悉)【1】查找(1)find方法#【1】默认从左到右开始查找,找得到则返回元素所在的索引位置name='ligo'str=name.find('i')print(str)#输出1#【2】也可在区间内寻找,找不到则返回-1str=name.find('g',3,4)print(str)#输出-1#【3】也......
  • Python中级之GC机制+字符编码+文件操作
    【一】深浅拷贝【1】深浅拷贝问题如果是浅拷贝,只会复制一层,如果拷贝的对象中有可变数据类型,修改可变数据类型还会影响拷贝的对象如果是深拷贝,完整复制,无论可变或不可变,都是创建出新的来,无法怎么修改原对象,都不会对拷贝出的对象造成影响(1)浅拷贝对于原对象中的可变数据类型......
  • Python中级之异常处理+推导式
    【一】异常处理【一】什么是异常异常是程序运行时可能发生的错误或意外情况当出现异常时,程序的正常流程会被中断,出现报错界面【二】异常分类在Python中异常分为内建异常和用户自定义异常【1】BaseException(所有异常的基类)SystemExit:解释器请求退出KeyboardInterru......
  • 使用Python的DataFrame和duckdb查询PG数据库
    直接使用以下脚本:importpsycopg2importduckdbimportpandasaspd#ConnecttoPostgreSQLconn_postgres=psycopg2.connect(dbname="pg_test_db",user="your_username",#Replacewithyourusernamepassword="your_password&qu......
  • Python基础之基本运算符
    【一】参考网站菜鸟教程:https://www.runoob.com/python/python-operators.html【二】算数运算符python支持的算数运算符与数学的运算符号是一样的#【1】加法运算符a=3b=4c=a+bprint(c)#输出7#【2】减法运算符a=3b=4c=a-bprint(c)#......
  • Python基础之流程控制语句
    【一】流程控制语句介绍程序是由语句构成,而流程控制语句是用来控制程序中每条语句执行顺序的语句流程控制方式有顺序结构分支结构循环结构最简单最常用的就是顺序结构,执行方式是从上至下一句一句来【二】顺序结构【1】什么是顺序结构顺序结构是指按照代码书写的顺......
  • threading:Python线程锁与释放锁
    控制资源访问前文提到threading库在多线程时,对同一资源的访问容易导致破坏与丢失数据。为了保证安全的访问一个资源对象,我们需要创建锁。示例如下:importthreadingimporttimeclassAddThread():def__init__(self,start=0):self.lock=threading.Lock()......
  • nuitka: Python代码打包为exe
    一.pyinstaller和Nuitka使用感受1.1使用需求这次也是由于项目需要,要将python的代码转成exe的程序,在找了许久后,发现了2个都能对python项目打包的工具——pyintaller和nuitka。这2个工具同时都能满足项目的需要:隐藏源码。这里的pyinstaller是通过设置key来对源码进行加密的;而......