Qt数据类型与强制转换(整理)

Qt数据类型与强制转换(整理)
变量(Variable)和对象(Object)
在python中的变量不需要声明,因为python是动态语⾔。python中所有的东西都是对象。
数字(Number)和字符(String)
在python中包括⼏种(整数、浮点数、长整数)数字类型和两种字符类型。
整数(Integer)和长整数(Long Integer)
Python提供了三种整数类 型:bool,int和long。bool类型只有两个值True和False,在数值环境中被当作1和0对待。long类型⽀持的数字的⼤⼩仅受机器内 存⼤⼩的限制。使⽤long类型的例⼦:q=7L。唯⼀不⾜的是:long类型⽐int类型慢。
浮点数(Float)和⼩数(Decimal)
Python提供了三种浮点 值:float,Decimal和complex。其中float的值为双精度浮点数,表⽰的范围决定于编译python的C(或Java)编译器。由于 计算机表⽰浮点数的⽅式的原因,会导致⼩的误差。float使
⽤64位表⽰浮点数。如果需要更⾼的精确度,可以使⽤decimal模块中的Decimal 数字(默认使⽤28位表⽰⼩数部分)。但是运⾏的时候⽐float慢很多。Decimal数字适⽤于⾦融计算。
使⽤Decimal的例⼦:
import decimal
decimal.Decimal("5.1")
decimal.Decimal("8.9e-4")硫氰酸红霉素
Python也提供了内建的复数类型:complex。但是使⽤j作为虚数单位。例如:c=5.4+0.8j。
字节字符串(Bytestring),Unicode字符串(Unicode String)和QString
Python中有两种内建的字符串:str(表⽰字节字符串)和unicode(表⽰Unicode字符)。PyQt提供了第三种字符串类型:QString。
the safest route is to use strs for 7-bit ASCII and for raw binary 8-bit bytes, and unicode or QString otherwise.
集合(Collection)
内建的集合类型有:tuple(元组)、list(列表)、dict(字典)、set和frozenset。其中tuple和frozenset是不可变的,其它都是可变的。
在Python标准库中有⼀个集合类型,此类型不包含类型索引,⽽是包含指定类型的数字。这就是array类型。它使⽤在需要存储⼤量的数字并且运⾏效率尽可能⾼的情况下。
元组(Tuple)
元组表⽰的是⼀个包含零个或更多个对象索引的有序序列。元组⽀持序列函数(如len())。这使得我们从元组中提取项⽬⼗分容易。然⽽,由于元组是不可变的,所以我们不能替换或者删除其中的项⽬。但我们可是通过把元组转换成列表间接实现此⽬的。
创建元组时,使⽤与不使⽤圆括号“()”都可以得到⼀个元组,这是没有区别的。
例如:
ex1=a,b,c
ex2=(a,b,c)
是⼀样的。
列表(List)
列表是与元组类似的有序序列。在字符串和元组中使⽤的序列函数及切⽚⼯具均严格适⽤于列表。与元组的区别是,列表可变,拥有可以⽤来改变它的函数。创建列表的时候,必须⽅括号“[]”或者使⽤list()构造器。
字典(Dictionarie)
dict类型是⼀个数据字典,也被看成联 合数组。字典包含⼀组⽆序的“键—值”对以及提供快速的键查询。字典中的键必须是唯⼀的,并且是不可变的,如元组、字符串或数字;值可以是任意类型。它和 Perl中的hash、Java中的HashMap和C++中的unordered_map类似。
字典可以使⽤dict()构建器构建。
集合(Set)(和数学上的集合定义⽐较接近)
Python提供了两种set类型:set和frozenset。它们都是⽆序的,因此都不是序列。Set可变,它的项⽬可增加或移除。Frozenset不可变,不能被改变。所
以,Frozenset也能⽤作字典的“键”。
Set中的项⽬是唯⼀的;试图增加⼀个已存在于set中的项⽬到set中,add()⽅法将什么也不做。包含相同项⽬的两个set相等,⽽不管其中项⽬的插⼊顺序。set和只
有“键”⽽⽆“值”的字典类似。
frozenset可以使⽤单⼀的序列参数创建,例如,元组或列表。set也可以使⽤相同的⽅式创建。
例如:
unicorns = set(("Narwhal","Oryx","Eland"))
如果创建的是set对象,那么就可使⽤add()和remove()⽅法来增加和移除set中的项⽬了。
内建函数(Build-in Function)
Python中有⼤量的内建函数和操作符:例如,del,print,len(),type(),help(),dir(str), range(), open(), hasattr(), isinstance(), max(), min()
与set相关的⼀些内建函数与操作符:
in,not in,len(), clear(), copy(), add(), remove(), discard(), issubset(), issuperset(), union(), intersection(), difference()
⼀些与序列(元组,列表,字典)相关的内建函数与操作符:
all, any, in, not in, len(), max(), min(), sum()
⼀些数学相关的内建函数
abs(),divmod(i,j),hex(i),oct(i),float(x),int(x),long(x),pow(x,y),round(x,n)
类型转换南京信息工程大学文学院刘媛
工程地质条件
把QString转换为 double类型
⽅法1.QString str="123.45";
double Double(); //val=123.45
⽅法2.很适合科学计数法形式转换
金寨地震bool ok;
double d;
d=QString("1234.56e-02").toDouble(&ok); //ok=true;d;12.3456.
把QString转换为float形
1.QString str="123.45";
float Float(); //d=123.45
2.QString str="R2D2";
bool ok;
float Float(&ok); //转换是被时返回0.0,ok=false;
把QString形转换为整形
1.转换为⼗进制整形
注意:基数默认为10。当基数为10时,并且基数必须在2到36之
麦大成
间。如果基数为0,若字符串是以0x开头的就会转换为16进制,若以0开头就转换为⼋进制,否则就转换为⼗进制。Qstring str="FF";
bool ok;
int Int(&ok,10); //dec=255 ; ok=rue
int hex =Int(&ok,16); //hex=255;ok=true;
3.常整形转换为Qstring形
long a =63;
QString str=QString::number(a,16); //str="3f";
QString str=QString::number(a,16).toUpper(); //str="3F";
Qstring 转换char *问题!
⽅法⼀:
QString qstr("hello,word");
const char * p = Local8Bit().data();
⽅法⼆:
const char *p = StdString().data();
转换过来的是常量
把当前时间转化为
public QDateTime qdate = QDateTime.currentDateTime();
datetime = String("yyyy年MM⽉dd⽇ddddhh:mm:ss");
如果不是QTime和QDate类⽐如说:通过TCP/IP接收到的char unsigned char 类等如何转换为QString类QString Time2String( DWORD dwTime)
{
受体激动剂
char cTime[50] = {0};
memset(cTime,0,50);
strftime(cTime,32,"%Y-%m-%d %H:%M:%S",localtime(&time_t(dwTime)));
return QString(cTime);
}

本文发布于:2024-09-21 22:31:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/263332.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   元组   转换   列表   序列   浮点数   数字
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议