详解Python数据类型、进制转换、字符串格式化的问题

目录
  • 1. 整数、浮点数和复数
    • 浮点数
    • Decimal
    • 复数
  • 2.进制转换
    • 进制数字类型
    • 整型进制操作
  • 3. 字符串
    • 3.1 转义字符
    • 3.2 字符串取值
  • 4. 字符串运算与转换
  • 5. 字符串的常用方法
    • 判断系列
    • 查找统计系列
    • 字符串转换类
    • +和join的效率问题
  • 6 . 字符串格式化
    • %格式化
    • format格式化
    • f格式化
    • 练习
  • 7. 字符串拼接

1. 整数、浮点数和复数

Python2中区分整型int、长整型long
Python3中只有统称为 整型int

浮点数

即带有小数点的数字,因为浮点数用二进制表示的,小数部分有时是无法表示的。是不精确的

float组成: 由整数位,小数点,小数位组成,也可以用科学计数法表示

Decimal

是精确的

from decimal import Decimal  #从decimal 包导入Decimal  类
mydec = Decimal("3.22")   #将字符串转换成decimal类型
print(mydec, type(mydec))
mydec2 = Decimal(3.22)   #浮点型3.22 是不精确的,转换成decimal就是精确的
print(mydec2, type(mydec))

结果:3.22 <class 'decimal.Decimal'>
3.220000000000000195399252334027551114559173583984375 <class 'decimal.Decimal'>

复数

dir(a) 查看属性
a.imag 获取虚部,无论定义的时候是整型还是浮点型最终都会转换成浮点型
a.real 获取实部

>>> a = 4 + 5j
>>> a.imag
5.0
>>> a.real
4.0

2.进制转换

进制数字类型

二进制、八进制、十六进制都是整型

>>> a=0b11  二进制   binary
>>> type(a)
<class 'int'>
>>> b=0o11  八进制 octonary
>>> type(b)
<class 'int'>
>>> c=0x11 十六制   hexadecimal
>>> type(c)
<class 'int'> 

整型进制操作

整型转换成2、8、16进制,得到的值是字符串类型

>>> num = 100
>>> bin(num)  整型转换成二进制,()里面只能是整型
              任意进制转2进制, 接收一个int, 返回一个str
'0b1100100'
>>> oct(num) 任意进制转8进制, 接收一个int, 返回一个str
'0o144'
>>> hex(num)   任意进制转16进制, 接收一个int, 返回一个str
'0x64'
>>> int (0o11) 接收整型
9
>>> int("0o11",base=8) 接收整型,但要指定几进制
9
>>> int("11")  接收整型,可以不指定,因为它是一个数字
11

3. 字符串

3.1 转义字符

r标志:是输出原始字符串,不转义

3.2 字符串取值

下标取值法
从左0123456
从右-1 -2 -3 -4 -5

>>> a = 'abcdefghijklmnopq'
>>> a[0]
'a'
>>> a[-8]
'j'

切片取值法

str[start:end:step]       左闭右开
step 为正数 从左至右
step 为负数 从右至左
str[2:]  从左至右 第三个数开始
str[:7] 从左至右到第七位
str[::-1]  从右至左 步长为1
str[4::-2]  从第五个数开始从右至左 步长为2
>>> a = 'abcdefghijklmnopq'  一旦定义不可改变
>>> a[2:5]
'cde'

4. 字符串运算与转换

>>> str1="qqq"
>>> str2 = "lll"
>>> str1+str2 # 字符串拼接
'qqqlll'
>>> str3="abc"
>>> str3*3
'abcabcabc'字符串复制
>>> result = str(100)  # int转换成字符串
>>> type(result)
<class 'str'>
>>> result
'100'

5. 字符串的常用方法

判断系列

演示:

>>> str7= "helloabc xx zz"
>>> str7.startswith("abc")
False
>>> str7.startswith("abc",5)
True
>>> str7.startswith("abc",5,7)
False
>>> str7.startswith("abc",5,8)
True

查找统计系列

len不是字符串的属性方法,不能通过.len的方式去计算长度

字符串转换类

>>> str7
'helloabc xx zz'
>>> str7.upper()  转大写
'HELLOABC XX ZZ'
>>> str7.title()  转标题格式
'Helloabc Xx Zz'
>>> str9 = str7.title().swapcase()  大小写互换
>>> str9
'hELLOABC xX zZ'
>>> str9 = "a b c d e f"
>>> str9.split()  默认按空格切割
['a', 'b', 'c', 'd', 'e', 'f']
>>> str10 = "a#b#c#d#e#f#g#h"
>>> str10.split("#")
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> str11 = str10.split("#")
>>> str11
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> "*".join(str11)
'a*b*c*d*e*f*g*h'

+和join的效率问题

+ 拼接效率比join低。+拼接,每一次出现都会在内存中开辟一个新的空间,所以效率低

6 . 字符串格式化

%格式化


语法格式:%[(name)][flags][width].[precision]typecode

  • (name):命名
  • flags: +,-,’ '或0。

+表示右对齐;-表示左对齐;
’ '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐,0表示使用0填充。

  • width表示显示宽度
  • precision表示小数点后精度

%s 一个萝卜一个坑,一一对应,不能多也不能少

演示:

结果

format格式化

num1 = 0.1416926   #转换成百分位
print("%.2f%% " % (num1 * 100))

f格式化

python2不支持这种写法

print(f"my name is {name},my age is {age}")
结果:my name is sc,my age is 4
print(f"my name is {name},my age is {age:*>10}")
结果:my name is sc,my age is *********4

练习

字符串的拼接方式
请计算出新拼接出来的字符串长度,并取出其中的第七个字符。

a = "字符串拼接1"
b = "字符串拼接2"
print("方式1:" + a + b)
print("方式2:%s%s" % (a, b))
print(f"方式3:{a}{b}")
print("方式4:{0}{1}".format(a, b))
c = a + b
print("新拼接的字符串长度为:", len(c))
print("第七个字符为:", c[6])
str1 = "8*y*cali*china**it*soft*linux*python"
count = str1.count("*")
list = str1.split("*")
str2 = "".join(list)
print("*" * count + str2)

将字符串"8ycalichina**itsoftlinuxpython"里的所有的*号抽
取出来放到最前面,里面的字符串保持顺序不变

str1 = "8*y*cali*china**it*soft*linux*python"
count = str1.count("*")
list = str1.split("*")
str2 = "".join(list)
print("*" * count + str2)

7. 字符串拼接

print(“%s %s”%(str1,str2))

>>> str1 = "你好"
>>> str2 = "hejin"
>>> str1+str2    #方式1:加号拼接
'你好hejin'
>>> "".join([str1,str2])  #方式2:join拼接
'你好hejin'
>>> print("%s,%s"%(str1,str2))  #方式3:% 占位符
你好,hejin
>>> "{},{}".format(str1,str2)   #方式4:format()
'你好,hejin'
>>> "{0},{1}".format(str1,str2) # 方式5
'你好,hejin'
>>> "{1},{0}".format(str1,str2)
'hejin,你好'
>>> "{a},{b}".format(a=str1,b=str2)  # 方式6
'你好,hejin'
>>> "{b},{a}".format(a=str1,b=str2)
'hejin,你好'
>>> f"{str1},{str2}"  # 方式7:f格式化
'你好,hejin'

练习:猜谁是小偷

嫌疑人A、B、C、D的笔录如下,其中三人为真,一人为假:
a:我不是小偷
b:C是小偷
c:小偷肯定是D
d:小偷肯定是D
lst = ["a", "b", "c", "d"]
for x in lst:
    if ("a" != x) + ("c" == x) + ("d" == x) + ("d" != x) == 3:
        print(f"{x}是小偷")

到此这篇关于Python数据类型、进制转换、字符串格式化的文章就介绍到这了,更多相关Python字符串格式化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python字符串格式化方式

    目录 什么是格式化? 使用格式化的场景和目的 格式化的三种方式 根据类型定义的格式化 - %s 关于整数的输出 关于浮点数的输出 关于字符串的输出 字符串格式化函数 - format() format()函数 - 指定数据类型输出 format()函数 - 位数补齐 format()函数 - 拓展 新格式化方法 :f-strings 什么是格式化? 定义:一个固定字符串中有部分成员(元素)会根据变量的值的改变而改变的字符串,这就是字符串格式化. 举一个生活中的小栗子:比如我们的书包,我们的书包是

  • Python的进制转换和ASCLL转换你了解吗

    目录 进制转换 1.十进制与二进制 1.1十进制转二进制 1.2二进制转十进制 2.十进制与八进制 2.1十进制转八进制 3.十进制与十六进制 3.1十进制转十六进制 3.2十六进制转十进制 4.其它进制之间的相互转换 ASCll转换 1.整数转换为ASCLL字符 2.将ASCLL字符转换为整数 总结 进制转换 进制之间的转换主要是利用十进制完成的.在进制转换的过程中,可以首先将相关进制转换为十进制的,再进行二次转换达到想要的效果.当然在进制转换中,也可以直接进行转换,不进行十进制的中转操作.

  • python字符串格式化(%格式符和format方式)

    目录 %格式符 format方式 总结 Python的字符串格式化有两种方式:%格式符方式,format方式 %格式符 %[(name)][flags][width].[precision]typecode (name)      可选,用于选择指定的key flags          可选,可供选择的值有: +       右对齐:正数前加正好,负数前加负号: -        左对齐:正数前无符号,负数前加负号: 空格    右对齐:正数前加空格,负数前加负号: 0        右对齐:

  • python字符串格式化函数

    目录 ​1.​格式化字符串输出​ 2.​三引号 ​3.Unicode​ 4.字符串字母处理函数(补充) 知识点:格式化.三引号.Unicode.字符串字母处理函数 ​1.​格式化字符串输出​ 编号 运算符类型 说明 1 [ : ] 截取字符串 2 in 成员运算符,可查找字符串是否包含某字符串或字符串,返回false和true 3 not in 成员运算符,同上,相反 ,格式:print("hello %s %s ..." % ('值1','值2','...')) 2.​三引号 编号

  • Python进制转换用法详解

    目录 使用int()转换 任意字符数字转换为10进制: 16进制转换为10进制:int(x,16) 8进制转换为10进制:int(x,8) 2进制转换为10进制:int(x,2) 使用bin(x) ,oct(x) 或hex(x) 转换: bin(x)转换为二进制: oct(x)转换为八进制: hex(x)转换为十六进制: 使用format() 转换 format(x,'b')转换为二进制 format(x,'o')转换为八进制 format(x,'d')转换为十进制 format(x,'x')转

  • python binascii 进制转换实例

    如下所示: #coding:utf-8 import binascii a = 'worker' #先把worker转换成二进制数据然后在用十六进制表示 b = binascii.b2a_hex(a) print b #与b2a_hex相反 print binascii.a2b_hex(b) #这个功能和b2a_hex()一样 c = binascii.hexlify(a) print c #这个功能和a2b_hex()一样 print binascii.unhexlify(c) ######运

  • 详解Python数据类型、进制转换、字符串格式化的问题

    目录 1. 整数.浮点数和复数 浮点数 Decimal 复数 2.进制转换 进制数字类型 整型进制操作 3. 字符串 3.1 转义字符 3.2 字符串取值 4. 字符串运算与转换 5. 字符串的常用方法 判断系列 查找统计系列 字符串转换类 +和join的效率问题 6 . 字符串格式化 %格式化 format格式化 f格式化 练习 7. 字符串拼接 1. 整数.浮点数和复数 Python2中区分整型int.长整型longPython3中只有统称为 整型int 浮点数 即带有小数点的数字,因为浮点

  • 一篇教程教你学会Python进制转换(十进制转二进制、八进制、十六进制)

    一.导言 导语: 在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是有时候数据过于庞大,为了方便存储管理,计算机会使用十六进制存储数据,但是怎么实现数据转换呢? 我们人类由十根手指头,所以自然就使用十进制啦,每当我们数数字到10之后,于是就重0 开始继续数,所以逢十进一就这么来了. 对于其它进制呢,也是同样的,比如最常见的二进制,也就是逢二进一,慢慢来,依次类推,所以数学的世界是多么的奇妙呀! 今天给大家带来的是使用 P

  • python内置进制转换函数的操作

    看代码吧~ dec = input('10进制数为:') print("转换为二进制为:", bin(dec)) print("转换为八进制为:", oct(dec)) print("转换为十六进制为:", hex(dec)) string1 = '101010' print('二进制字符串转换成十进制数为:',int(string1,2)) string1 = '367' print('八进制字符串转换成十进制数为:',int(string1,

  • python实现基本进制转换的方法

    本文实例讲述了python基本进制转换的方法.分享给大家供大家参考.具体如下: # Parsing string with base into a number is easy num = int(str, radix) # We have to write our own function for outputting to string with arbitrary base def itoa(num, radix): result = "" while num > 0: r

  • 基于Python制作一个多进制转换工具

    目录 前言 主要步骤 完整代码 前言 学习资料下载链接 提取码:tha8  进制转换计算工具含源文件 主要步骤 导入模块 import tkinter from tkinter import * import tkinter as tk from tkinter.ttk import * 整个框架的主结构 root = Tk() root.title('贱工坊-进制转换计算') # 程序的标题名称 root.geometry("580x400+512+288") # 窗口的大小及页面的

  • java 进制转换实例详解

    java 进制转换实例详解 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("876",8).toString() 二进制转十进制 Integ

  • C语言实现进制转换函数的实例详解

    C语言实现进制转换函数的实例详解 前言: 写一个二进制,八进制,十六进制转换为十进制的函数 要求: 函数有两个参数,参数(1)是要转换为十进制的进制数,参数(2)是标示参数(1)是什么进制(2,8,16标示二进制,八进制,十六进制). 要有报错信息,比如参数是1012,但参数(2)是2,显然是进制数表示有错误. 系统表 pg_proc 存储关于函数的信息 内部函数在编译之前需要先定义在 pg_proc.h 中,src/include/catalog/pg_proc.h CATALOG(pg_pr

随机推荐