Python的基本数据类型有什么,如何用代码解�
Admin 2022-08-20 群英技术资�
age = 18 # age=int(18) print(id(age))#<code>4530100848</code> print(type(age))#<class 'int'> print(age)#18
我们可以使用二进制、十六进制和八进制来代表整数
number = 0b101011 # 二进� print(number) # 43 number = 0xA0F # 十六进制 print(number) # 2575 number = 0o37 # 八进� print(number) # 31
可将纯数字的字符串转为十进制的整�
int(x):将x变成整数,舍弃小数部分�
print(int("123")) # 123 x = int('111') print(type(x)) # <class 'int'> # print( int('11.1') ) # 报错 print(int(123.45)) # 123
内置的type()函数可以用来查询变量所指的对象类型�
a, b, c, d = 20, 5.5, True, 4 + 3j print(type(a), type(b), type(c), type(d)) # <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
此外还可以用isinstance来判断:
a = 111 isinstance(a, int) # True
type和isinstance的区别在于:
class A: pass class B(A): pass isinstance(A(), A) # True type(A()) == A # True isinstance(B(), A) # True type(B()) == A # False
当你指定一个值时,Number对象就会被创建:
var = 2 var_a = var_b = 10
您可以通过使用del语句删除单个或多个对象�
del语句的语法是�
del var1[, var2[, var3[...., varN]]]
例如�
del var del var_a, var_b print(var) # name 'var' is not defined
例如�
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
此处� _ 变量应被用户视为只读变量�
注意�3点:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系�
print(7 // 2) # 3 print(7.0 // 2) # 3.0 print(7 // 2.0) # 3.0
salary = 2.1 # salary=float(2.1) print(id(salary))#<code>4569240656 </code> print(type(salary))#<code><class 'float'> </code> print(salary)# <code>2.1
将纯数字的字符串转为浮点型数字�
float(x):将x变成浮点数,增加小数部分�
print(float("1.23")) # 1.23 x = float('111') print(x) # 111.0 print(type(x)) # <class 'float'> x = float('11.1') print(x) # 11.1 print(type(x)) # <class 'float'> print(float(12)) # 12.0�
1.浮点数间运算存在不确定尾数,一般发生在10�16次幂左右
2.round(x, d)函数:对x四舍五入,d是小数截取位�
3.浮点数间运算及比较,用round()函数辅助
0.1 + 0.2 == 0.3 # False
round(0.1+0.2, 1) == 0.3 # True
<a>e<b>
,表� a*10b
4.3e-3
值为0.0043
�9.6E5
值为 960000.0
abs(x):绝对值。x的绝对值�
print(abs(-10.01)) # 10.01
divmod(x,y):商余�(x//y, x%y),同时输出商和余数�
print(divmod(10, 3)) # (3, 1)
pow(x, y[, z]):幂余�(x**y)%z,[..]表示参数z可省略�
print(pow(3, 2)) # 9 print(pow(3, 2, 2)) # 1 print(pow(3, pow(3, 2))) # 19683 print(pow(3, pow(3, 2), 10000)) # 9683
round(x[, d]):四舍五入。d是保留小数位数,默认值为0�
print(round(-10.123, 2)) # -10.12
max(x1,x2,�,xn):最大值。返回x1,x2,�,xnx1,x2,�,xn中的最大值,n不限�
print(max(1, 9, 5, 4, 3)) # 9
min(x1,x2,�,xn):最小值。返回x1,x2,�,xnx1,x2,�,xn中的最小值,n不限�
print(min(1, 9, 5, 4, 3)) # 1
以下为数学函数,需要导入math模块
exp(x):返回e的x次幂(ex)
import math print(math.exp(1)) # 2.718281828459045
fabs(x):返回数字的绝对�
import math print(math.fabs(-10)) # 10.0
ceil(x):返回数字的上入整�
import math print(math.ceil(4.1)) # 5
floor(x): 返回数字的下舍整�
import math print(math.floor(4.9)) # 4
log(x):返回以e为基数的对象
import math print(math.log(math.e)) # 1.0 print(math.log(100, 10)) # 2.0
log10(x): 返回�10为基数的x的对�
import math print(math.log10(100)) # 2.0
modf(x):返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示�
import math print(math.modf(-100.1)) # (-0.09999999999999432, -100.0)
sqrt(x):返回数字x的平方根�
import math print(math.sqrt(81)) # 9.0
a+bj
被称为复数,其中,a是实部,b是虚�
z = 1.23e-4 + 5.6e+89j print(z.real) # 0.000123 print(z.imag) # 5.6e+89
print(complex(4)) # (4+0j)
True、False通常情况不会直接引用,需要使用逻辑运算得到结果�
print(type(True))# <code><class 'bool'></code> print(True)# True
注意:Python中所有数据类型的值自带布尔值�
如此多的数据类型中只需要记住只�0、None、空、False的布尔值为False,其余的为True�
print(bool(0)) # False print(bool(None)) # False print(bool('')) # False print(bool(False)) # False print(bool('nick')) # True print(bool(1 > 2)) # False print(bool(1 == 1)) # True
字符串就是一串被串起来的字符,在单引号、双引号或三引号内包裹的一串字符。同时使用反斜杠 \ 转义特殊字符�
name1 = 'nick' name2 = "egon" print(id(name1)) # <code>4418849624</code> print(type(name1))# <class 'str'> print(name1)# nick
需要注意的是:三引号内的字符可以换行,而单双引号内的字符不可以�
name3 = """nick
egon"""
print(name3)
nick egon
转义符:
Python 使用反斜�(\)转义特殊字符�
print("这里有个双引�(\")") # 这里有个双引�(")
转义符形成一些组合,表达一些不可打印的含义�
\(在行尾时) :续行符
\\ :反斜杠符号
\' :单引号
\" :双引号
\a :响�
\b :退�(Backspace)
\000 :空
\n :换�
\v :纵向制表符
\t :横向制表符
\r :回�(光标移动到本行首)
\f :换�
\oyy :八进制数,yy 代表的字符,例如:\o12 代表换行,其� o 是字母,不是数字 0�
\xyy :十六进制数,yy代表的字符,例如:\x0a代表换行
\other :其它的字符以普通格式输�
print('Ru\noob') # Ru # oob print(r'Ru\noob') # Ru\noob
注意:
连接两个字符串x和y。如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同�
msg2 = "my name is 'nick'" msg3 = 'my name is "nick"' print(msg2 + msg3) # my name is 'nick'my name is "nick"
只能乘以数字�
name = 'nick ' print(name * 10)# <code>nick nick nick nick nick nick nick nick nick nick
按照ASCII码比�.字符串的比较是字母的顺序�
msg1 = 'hello' msg2 = 'z' print(msg1 > msg2) #False print('Z' > 'A') #True print('Z' > 'a') #False
str(x):任意类型x所对应的字符串形式
print(str(1.23)) # �1.23� print(str([1, 2])) # “[1, 2]�
hex(x) � oct(x):整数x的十六进制或八进制小写形式字符串�
print(hex(425)) # "0x1a9" print(oct(425)) # "0o651"
chr(u)�x为Unicode编码,返回其对应的字�
ord(x)�x为字符,返回其对应的Unicode编码
print(chr(21704)) # "�" print(ord('�')) # "21704"
1、str[n]:按索引取�
msg = 'hello nick' # 0123456789 # 索引序号 print(msg[6] ) #索引�6: n print(msg[-3]) # 索引�-3: i
你可以截取字符串的一部分并与其他字段拼接,如下实例:
var1 = 'Hello World!' print("已更新字符串 : ", var1[:6] + 'Runoob!') # 已更新字符串 : Hello Runoob!
举例:输入整数对应的星期字符�
weekStr = "一二三四五六日" weekId = eval(input("请输入星期数�(1-7)�")) print("星期" + weekStr[weekId - 1]) # 7 星期�
2、str[x:y:step]:切片(顾头不顾尾,步长� :
遵循左闭右开原则,str[0,2] 是不包含� 3 个字符的�
msg = 'hello_nick' # 0123456789 # 索引序号 print(msg[3:] ) # 切片3-最�: lo_nick print(msg[3:8]) # 切片3-8: lo_ni print(msg[3:8:2] ) # 切片3-8,步长为2: l_i print(msg[3::2]) # 切片3-最后,步长�2: l_ik # 了解,步长为正,从左到右;步长为负,从右到左 print(msg[:]) # 切片所�: hello_nick print(msg[::-1] ) # 反转所�: kcin_olleh print(msg[-5:-2:1] ) # 切片-5--2: _ni print(msg[-2:-5:-1] ) # 切片-2--5: cin
3、len:长度
msg = 'hello nick�' print(len(msg)) # 11
4、in、not in:成员运算
msg = 'my name is nick, nick handsome' print('nick' in msg) # True print('jason' not in msg) # True print(not 'jason' in msg) # True
5、移除空�
name = '&&&n ick ' print(name.strip()) # &&&n ick,注意 strip()默认为� ' print(name.strip('&')) # n ick ,strip并且不修改原值,新创建空� print(name) # name: &&&n ick , print('*-& nick+'.strip('*-& +')) # nick
6、拆�,split,返回一个列�
info = 'nick:male:19' info_list1 = info.split(':') # ['nick', 'male', '19'] info_list2 = info.split(':', 1) # ['nick', 'male:19'] print(info.rsplit(':', 1)) # ['nick:male', '19']� 从右开始切�
info = """aaa bbb ccc """ print(info.splitlines()) # ['aaa', 'bbb', 'ccc'] print(info.splitlines(True)) # ['aaa\n', 'bbb\n', 'ccc\n']
7、for循环
msg = 'hello nick' for i in msg: print(i) # 一个一个字符打印出�
8、大小写,返回字符串的副�
name = 'Nick Chen' print(name.lower()) # nick chen print(name.upper()) # NICK CHEN
name = 'nick handsome sWAPCASE' print(name.capitalize()) # Nick handsome swapcase print(name.swapcase()) # NICK HANDSOME Swapcase 大小写互� print(name.title()) # Nick Handsome Swapcase
9、首末字符判�
name = 'Nick Chen' print(name.startswith('Nick')) # True print(name.endswith('chen')) # False
10、join(seq):以此字符串作为分隔符,连接字符串�
以指定字符串作为分隔符,� seq 中所有的元素(的字符串表示)合并为一个新的字符串
lis = ['nick', 'male', '19'] print(':'.join(lis)) # nick:male:19 print(",".join("12345")) # 1,2,3,4,5 str = "-" seq = ("a", "b", "c") # 字符串元� print(str.join(seq)) # a-b-c
11、替换:replace
replace(old, new [, max]):把 将字符串中的 str1 替换� str2,如果 max 指定,则替换不超� max 次�
name = 'nick shuai' print(name.replace('shuai', 'handsome')) # nick handsome
12、is***:数据类型判�
salary = '111.1' print(salary.isdigit()) # False
num = "1" # unicode num.isdigit() # True num.isdecimal() # True num.isnumeric() # True num = "1" # 全角 num.isdigit() # True num.isdecimal() # True num.isnumeric() # True num = b"1" # byte num.isdigit() # True num.isdecimal() # 属性错� 'bytes' object has no attribute 'isdecimal' num.isnumeric() # 属性错� 'bytes' object has no attribute 'isnumeric' num = "IV" # 罗马数字 num.isdigit() # True num.isdecimal() # False num.isnumeric() # True num = "�" # 汉字 num.isdigit() # False num.isdecimal() # False num.isnumeric() # True
13、unicodeData
import unicodedata unicodedata.digit("2") # 2 unicodedata.decimal("2") # 2 unicodedata.numeric("2") # 2.0 unicodedata.digit("2") # 2 unicodedata.decimal("2") # 2 unicodedata.numeric("2") # 2.0 unicodedata.digit(b"3") # TypeError: must be str, not bytes unicodedata.decimal(b"3") # TypeError: must be str, not bytes unicodedata.numeric(b"3") # TypeError: must be str, not bytes unicodedata.digit("�") # ValueError: not a digit unicodedata.decimal("�") # ValueError: not a decimal
unicodedata.numeric("�") # 8.0
unicodedata.digit("�") # ValueError: not a digit unicodedata.decimal("�") # ValueError: not a decimal
unicodedata.numeric("�") # 4.0
14、查找:find� index
msg = 'my name is tank, tank shi sb, hha' print(msg.find('tank')) # 11 print(msg.find('tank', 0, 3)) # -1,找不到返�-1 print(msg.rfind('tank')) # 17,找不到返�-1 print(msg.index('tank')) # 11.找不到报� print(msg.rindex('tank')) # 17 找不到报� print(msg.count('tank')) # 2
15、填�
print('info nick'.center(20, '*')) # *****info nick****** print('info nick'.ljust(20, '*')) # info nick*********** print('info nick'.rjust(20, '*')) # ***********info nick print('info nick'.zfill(20)) # 00000000000info nick, 默认�0填充
16、expandtabs(tabsize=8):把字符串中� tab 符号转为空格
tab 符号默认的空格数� 8 �
print('a\tb\tc\t') # a b c ,默认制表�8个空� print('a\tb\tc\t'.expandtabs(10)) # a b c .
17、encode、decode:字符编码解�
Python3中字符串默认为Unicode编码�
str类型的数据可以编码成其他字符编码的格式,编码的结果为bytes类型�
# coding:gbk x = '�' # 当程序执行时,无需加u�'�'也会被以Unicode形式保存新的内存空间�, print(type(x)) # <class 'str'> # x可以直接encode成任意编码格� print(x.encode('gbk')) # b'\xc9\xcf' print(type(x.encode('gbk'))) # <class 'bytes'>
a = "asdfasdfffsa师德师风�" b = a.encode(encoding='UTF-8', errors='strict') print(type(b)) # <class 'bytes'> print(b) # b'asdfasdfffsa\xe5\xb8\x88\xe5\xbe\xb7\xe5\xb8\x88\xe9\xa3\x8e\xe7\x9a\x84' c = b.decode(encoding="utf-8", errors="strict") print(type(c)) # <class 'str'> print(c) # asdfasdfffsa师德师风�
18、字符串与列表,元组的互相转捀�
1、字符串转换为列表:for循环
var='菜鸟教程' list=[] list= [i for i in var]
2、列表转化为字符串:使用 join 来实�:
var1=' ,'.join(list)
3、字符串转化为元组,使用 tuple() 函数�
tup=tuple(var)
构造函数:
可以同时提供分子(numerator)和分母(denominator)给构造函数用于实例化Fraction类,但两者必须同时是int类型或者numbers.Rational类型,否则会抛出类型错误。当分母�0,初始化的时候会导致抛出异常ZeroDivisionError�
分数类型�
from fractions import Fraction x = Fraction(1, 3) y = Fraction(4, 6) print(x + y) # 1 print(1 / 3 + 4 / 6) # 1.0 print(Fraction('.25')) # 1/4
浮点数与分数的转换:
from fractions import Fraction f = 2.5 z = Fraction(*f.as_integer_ratio()) print(z) # 5/2 x = Fraction(1, 3) print(float(x)) # 0.3333333333333333
decimal 模块提供了一� Decimal 数据类型用于浮点数计算,拥有更高的精度�
import decimal decimal.localcontext().prec= 4 # 指定精度�4位小数) print(decimal.Decimal(1) / decimal.Decimal(7)) # 0.1429 with decimal.localcontext() as ctx: # 小数上下文管理器 ctx.prec = 2 print(decimal.Decimal('1.00') / decimal.Decimal('3.00')) # 0.33
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容�
猜你喜欢
这篇文章给大家分享的是有关python字符串格式化的内容,而python字符串格式化有百分号和format这两种方式,下面我们来分别了解一下,感兴趣的朋友就继续往下看吧�
Python语言作为一种比较“新”的编程语言,能在众多编程语言中脱颖而出,且与C语言、C++、Java等“元老级”编程语言并驾齐驱,无疑说明其具有诸多高级语言的优点,亦独具一格,拥有自己的特点。下面我们将简单说明Python语言的优点。为什么说Python对编程小白更友好呢?
这篇文章主要介绍了pytorch实现简单全连接层的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要介绍了解决Python保存文件名太长OSError: [Errno 36] File name too lon问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐�
Scipy是Python算法库和数学工具包,包括最优化、线性代数、积分、插值、特殊函数、傅里叶变换等模块。scipy.optimize模块中提供了多个用于非线性规划问题的方法,适用于不同类型的问题。本文将利用起解决经济调度问题,感兴趣的可以了解一�
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所�
增值电信经营许可证 : B1.B2-20140078