类型转换及相关函数

4.11 类型转换及相关函数

在Python中,不同的数据类型是可以相互转换的,下面列举一些之前没有介绍但是比较常见的数据类型转换及相关函数,以供参考。

描述
将整数转变为以”0b”前缀的二进制字符串。
示例

bin(3)
bin(-10)

‘0b11’
‘-0b1010’

描述
返回x的整数部分。如果有base参数,则x必须为字符串,返回的结果为将x作为base参数指定的进制数转换成10进制后的数。
示例

int(1.5)
int(-1.5)
int(‘2.3′)
int(’16’, 8)

1
-1
2
14

描述
将一个整数转变为一个前缀为”0o”的八进制字符串。
示例

oct(16)
oct(22)

‘0o20’
‘0o26’

描述
将整数转换为以”0x”为前缀的小写十六进制字符串。
示例

hex(16)
type(hex(16))

‘0x10’

描述
返回x的布尔值,结果为True 或 False。如果 x 为 False 或省略,则返回 False;否则返回 True。
示例

bool()
bool(5)

False
True

描述
返回 Unicode 码位为整数 i 的字符的字符串。ord()函数是chr()的逆函数。
chr()函数的实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发 ValueError 异常。
示例

for i in range(80, 85):
    print(chr(i))

P
Q
R
S
T

描述
返回从数字或字符串 x 生成的浮点数。
示例

float(25)
float(‘5.3’)

25.0
5.3

描述
range函数返回一个不可变的序列类型。有2种调用方式:
第1种只需要输入stop参数,为一个大于0的正整数。返回的序列的值为0到stop-1,步长为1。
第2种需要输入起始值和结束值,step作为可选参数。返回的序列的值为start到stop-1,步长为step。step可以为负数,若为负数时,则start必须大于stop。
示例

from typing import *
r = range(3)
print(r)
print(type(r))
print(isinstance(r, Iterable))
print(isinstance(r, Iterator))
for i in r:
    print(i)

range(0, 3)

r = range(1, 11, 2)
for i in r:
    print(i)

1
3
5
7
9

r = range(11, 1, -2)
for i in r:
    print(i)

11
9
7
5
3

描述
返回一个 slice 对象,代表由 range(start, stop, step) 指定索引集的切片。 其中参数 start 和 step 的默认值为 None。slice函数的两种用法关于参数的部分和range函数一致,可以参考range函数参数用法。
it[slice(start, stop, step)] 等效于 it[start:stop:step]
有了slice对象可以很方便的对多个可迭代对象进行相同的切片。
示例

a = 'abcdefgh'
x = slice(2, 8, 2)
print(x)
print(type(x))
print(a[x])
print(a[2:8:2])

slice(2, 8, 2)

描述
返回obj的字符串版本
示例

str(5+3)
str([1, 2, 3])

‘8’
‘[1, 2, 3]’

Original: https://www.cnblogs.com/sibide/p/16390629.html
Author: crleep
Title: 类型转换及相关函数



相关阅读

Title: 用 VS Code 搞Qt6:使用 PySide 6

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡

进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛

入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

一般来说,用C++写 Qt 应用才是正宗的,不过,为了让小学生也能体验 Qt 的开发过程,或者官方为了增加开发者人数,推出了可用 Python 来编程的 Qt 版本。此版本命名比较奇葩,叫 PySide,与 Qt 6 配套的是 PySide 6。当前最新版本是 6.3.2。

PySide 的优势在于它是官方维护的,完全是C++开发的。在原有库基础上增加了对应的 .pyd 文件,对 API 做了封装,并由 .pyi 文件进行类型规范。在性能上是不用担心的,但是,这种开发方式用来学习较适合,真要做个应用程序,还是用C++好,编译出来就能用了。Python 写的话打包要用其他工具,也麻烦,对于脚本语言,还得到处带上个解析器。

PySide 6 可以通过 pip 直接安装就行了。

在安装之前,老周建议先创建个虚拟环境。一来专用性强,二来方便打包。假设我要把虚拟环境存放在神奇的 E 盘下的 MyEnv 目录下,那么,可以执行:

python -m venv E:\MyEnv

或者

python3 -m venv E:\MyEnv

虚拟环境可以创建一个隔离的区域,有独立的 python 解析器、pip 程序等。每个虚拟环境互不干扰。在虚所环境的 Scripts 目录(Linux是 bin 目录)下,有两个文件很有用。要启用虚拟环境,就执行 activate 文件;要退出虚拟环境,执行 deactivate 文件。

接下来在刚建立的虚拟环境中安装 PySide 6。先执行 activate 文件激活环境,然后执行命令:

pip install PySide6

如果不能下载或下载特慢,请换国内的清华大学源。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple **PySide6**

详细的使用方法请自行查看帮助说明,此话题对本文而言已超纲。

接下来该到 VS Code 了。不需要什么特殊配置,安装微软官方的 Python 扩展即可。

但是,不过,可是,然而,要注意:要先执行虚拟环境中的 activate 文件,然后在当前运行环境不变的前提下启动 VS Code。在VS Code中也需要使用虚拟环境所设置的环境变量。为了人性化,咱们可以在桌面上建一个批处理文件,然后输入以下内容:

@echo off
call E:\MyEnv\Scripts\activate.bat
start C:\<你的vs code 路径>\VSCode\Code.exe
exit
</你的vs>

第一行不解释了,可自行度娘。第二行是用 CALL 命令调用 activate 文件(在 Windows 上它是个批处理文件),这样虚拟环境就激活了。第三行使用 start 命令启动 VS Code,这样 VS Code 就具备了虚拟环境的上下文和环境变量了。第四行退出这个批处理文件,这是为了关掉命令行窗口。此处不必理会 deactivate 文件,毕竟 VS Code 退出后,虚拟环境相关的环境变量就没有了。

当我们要用 PySide 6 时,直接运行批处理文件就完事了。

===================================================================================

PySide 6 的各种类型、模块与 C++ 版本是一样的,只要你会写 Python 代码,基本上可以直接迁移。当然,千万不要像官方文档那样迁移,因为文档的 Python 代码估计是通过机器翻译的,直接将 C++ 译成 Python。所以,你会看到官方文档有很多 Python 代码是错的,根本不能运行。有的连语法都保留了 C++ 特征,压根就不是 Python 代码。

尽管不能直接把 C++ 代码转换成 Python 代码,但是按照 C++ Qt 程序的思路来写代码是没问题的。由于编程语言差异性,是不可能完全兼容的。比如,C++ 版中的许多宏,你不能在 Python 中使用。假如你要从 QObject 类派生,为了使其支持信号和槽,要加上 Q_OBJECT 宏。在 Python 中不需要加,也没有这个,官方封装的库会帮我们完成这个。再如,C++ 中重载的运算符 <

在 VS Code 中,解析器选择咱们上面创建的虚拟环境。然后新建一个代码文件,名字随便取。写个简单程序试试。

# &#x5BFC;&#x5165;&#x8981;&#x7528;&#x5230;&#x7684;&#x7C7B;&#x578B;
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QWidget

# &#x81EA;&#x5B9A;&#x4E49;&#x7C7B;&#xFF0C;&#x4F5C;&#x4E3A;&#x7A97;&#x53E3;
class MyWindow(QWidget):
 # &#x6784;&#x9020;&#x51FD;&#x6570;
    def \_\_init\_\_(self, parent = None):
 super().\_\_init\_\_(parent, Qt.Window)
 # &#x8BBE;&#x7F6E;&#x7A97;&#x53E3;&#x6807;&#x9898;
        self.setWindowTitle("&#x667A;&#x80FD;&#x638F;&#x7CAA;&#x673A;")
 # &#x8BBE;&#x7F6E;&#x7A97;&#x53E3;&#x5927;&#x5C0F;
        self.resize(260, 185)

#-------------------------------------------------
if \_\_name\_\_ == '\_\_main\_\_':
 # &#x5148;&#x5B9E;&#x4F8B;&#x5316; app &#x5BF9;&#x8C61;
    app = QApplication()
 # &#x518D;&#x5B9E;&#x4F8B;&#x5316;&#x7A97;&#x53E3;&#x7C7B;&#x5BF9;&#x8C61;
    win = MyWindow()
 # &#x663E;&#x793A;&#x7A97;&#x53E3;
 win.show()
 # &#x542F;&#x52A8;&#x6D88;&#x606F;&#x5FAA;&#x73AF;
    app.exec()

最后启动应用程序的代码也可以这样写:

if \_\_name\_\_ == '\_\_main\_\_':
 import sys
    # &#x5148;&#x5B9E;&#x4F8B;&#x5316; app &#x5BF9;&#x8C61;
    app = QApplication(sys.argv)
    # &#x518D;&#x5B9E;&#x4F8B;&#x5316;&#x7A97;&#x53E3;&#x7C7B;&#x5BF9;&#x8C61;
    win = MyWindow()
 # &#x663E;&#x793A;&#x7A97;&#x53E3;
 win.show()
 # &#x542F;&#x52A8;&#x6D88;&#x606F;&#x5FAA;&#x73AF;
    sys.exit(app.exec())

执行此代码文件,效果如下图:

类型转换及相关函数

看到上述窗口,说明 PySide 6 配置无误。

Original: https://blog.csdn.net/qq_43479892/article/details/127181696
Author: qq_43479892
Title: 用 VS Code 搞Qt6:使用 PySide 6

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/372046/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总