Python教程: 变量类型

Python 变量类型

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

变量赋值

Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:

name='zk'
sex='man'
age=29
job="none"
count=1000
mile=1000.1
bool=True
print(name+" "+sex+" "+job+" ")
print(bool)
print(count)
print(mile)

执行以上程序会输出如下结果

zk man none 
True
1000
1000.1  

多个变量赋值

Python允许你同时为**多个变量赋值**。例如:  

a=b=c=1
print(a)
print(b)
print(c)

 以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

您也可以为多个对象指定多个变量。例如:

d,e,f=5,"str",4
print(d)
print(e)
print(f)

执行以上程序会输出如下结果

5
str
4

以上实例,两个整型对象1和2的分配给变量d和e,字符串对象"john"分配给变量f。

标准数据类型

在内存中存储的数据可以有多种类型。

例如,person.s年龄作为一个数值存储和他或她的地址是字母数字字符存储。

Python有一些标准类型用于定义操作上,他们和为他们每个人的存储方法可能。

Python有五个标准的数据类型

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

Python数字

数字数据类型用于存储数值

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

当你指定一个值时,Number对象就会被创建:

var1 = 1
var2 = 10

您也可以使用del语句删除一些对象引用。

del语句的语法是:

del var1\[,var2\[,var3\[....,varN\]\]\]\]

您可以通过使用del语句删除单个或多个对象。例如:

del var
del var\_a, var\_b

Python支持四种不同的数值类型:

  • int(有符号整型)
  • long(长整型[也可以代表八进制和十六进制])
  • float(浮点型)
  • complex(复数)

一些数值类型的实例

intlongfloatcomplex
1051924361L0.03.14j
100-0x19323L15.2045.j
-7860122L-21.99.322e-36j
0800xDEFABCECBDAECBFBAEl32.3+e18.876j
-0490535633629843L-90.-.6545+0J
-0x260-052318172735L-32.54e1003e+26J
0x69-4721885298529L70.2-E124.53e-7j
  • 长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
  • Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

Python字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。

一般记为 :

s=“a1a2···an”(n>=0)

它是编程语言中表示文本的数据类型。

python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

比如:

s = 'ilovepython'

**s[1:5]**的结果是love。

当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。

上面的结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p。

加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:

str = 'Hello World!'

print(str) # 输出完整字符串
print(str\[0\]) # 输出字符串中的第一个字符
print(str\[2:5\]) # 输出字符串中第三个至第五个之间的字符串
print(str\[2:\]) # 输出从第三个字符开始的字符串
print(str \* 2) # 输出字符串两次
print(str + "TEST") # 输出连接的字符串

输出结果如下:

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST  

字符串split函数

txt='www.baidu.com'
print(txt.split('.'))
print(txt.split('.')\[1\])

输出结果如下:

取结尾为.jpg的文件名

img=\['aa.png','bb.jpg','cc.jpg'\]
result=\[\]
for file in img:
    if file.split('.')\[1\]=='jpg':
        result.append(file)
print(result)

输出结果如下:

例题:

在网页列表中选择网页出现次数最多的网址,列表如下:

'http://www.baidu.com/index.html',  
'http://www.baidu.com/1.html',  
'http://post.baidu.com/index.html',  
'http://mp3.baidu.com/index.html',  
'http://www.baidu.com/3.html',  
'http://post.baidu.com/2.html'  

raw = \[
    'http://www.baidu.com/index.html',
    'http://www.baidu.com/1.html',
    'http://post.baidu.com/index.html',
    'http://mp3.baidu.com/index.html',
    'http://www.baidu.com/3.html',
    'http://post.baidu.com/2.html',
\]

result=\[\]
for single\_raw in raw:
    page\_domain\_afterhttp = single\_raw.split('/')\[2\]
    result.append(page\_domain\_afterhttp)
print(max(result))

输出结果:

字符串拼接

var1="zk"
var2="lwt"
schoolname="wanmendaxue"
pinjie=var1+var2+schoolname
word\_1="Pi等于"
word\_2=3.1415
result=word\_1+str(word\_2)
print(pinjie)
print(result)

输出结果:

zklwtwanmendaxue
Pi等于3.1415

Python占位符的三种形式

name="张焜"
age=29
height=1.79
school='中国矿业大学'
boys=100
girls=200
print(f"我叫{name},年龄{age},学校{school},身高{height},班里有男孩{boys}个,女孩{girls}个")
print("我叫%s,年龄%d,学校%s,身高%.2f,班里有男孩%d个,女孩%d个" %(name,age,school,height,boys,girls))
print("我叫{0},年龄{1},学校{2},身高{3},班里有男孩{4}个,女孩{5}个".format(name,age,school,height,boys,girls) )

Python数学函数

import math
int\_1=10
int\_2=-10
double\_1=1.45
print(abs(int\_1))           #绝对值
print(abs(int\_2))
print(min(int\_1,int\_2))     #两数取小
print(max(int\_1,int\_2))     #两数取大
print(math.floor(double\_1)) #向下取整
print(math.ceil(double\_1))  #向上取整
print(math.sqrt(int\_1))     #开根号

Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数描述
int(x [,base])

|

将x转换为一个整数

|
|

long(x [,base] )

|

将x转换为一个长整数

|
|

float(x)

|

将x转换到一个浮点数

|
|

complex(real [,imag])

|

创建一个复数

|
|

str(x)

|

将对象 x 转换为字符串

|
|

repr(x)

|

将对象 x 转换为表达式字符串

|
|

eval(str)

|

用来计算在字符串中的有效Python表达式,并返回一个对象

|
|

tuple(s)

|

将序列 s 转换为一个元组

|
|

list(s)

|

将序列 s 转换为一个列表

|
|

set(s)

|

转换为可变集合

|
|

dict(d)

|

创建一个字典。d 必须是一个序列 (key,value)元组。

|
|

frozenset(s)

|

转换为不可变集合

|
|

chr(x)

|

将一个整数转换为一个字符

|
|

unichr(x)

|

将一个整数转换为Unicode字符

|
|

ord(x)

|

将一个字符转换为它的整数值

|
|

hex(x)

|

将一个整数转换为一个十六进制字符串

|
|

oct(x)

|

将一个整数转换为一个八进制字符

|

1、int函数:

(1)把符合数学格式的数字型字符串转换成整数,字符串内非数字无法转换为整数
(2)把浮点数转换成整数,但是只是简单的取整,而非四舍五入,浮点数整数会消除小数部分取整

aa = int("124")    #Correct
print("aa = ", aa)  #result=124
bb = int(123.45) #correct
print("bb = ", bb) #result=123
cc = int("-123.45")  #Error,Can't Convert to int
print("cc = ",cc)
dd = int("34a")    #Error,Can't Convert to int
print("dd = ",dd)
ee = int("12.3") #Error,Can't Convert to int
print(ee)

2、float函数将整数和字符串转换成浮点数,字符串内非数字无法转换为浮点

aa = float("124")     #Correct
print("aa = ", aa)     #result = 124.0 
bb = float("123.45")  #Correct
print("bb = ", bb)     #result = 123.45
cc = float(-123.6)    #Correct
print("cc = ",cc)      #result = -123.6
dd = float("-123.34") #Correct
print("dd = ",dd)      #result = -123.34
ee = float('123v')    #Error,Can't Convert to float
print(ee)

3、str函数将数字转换成字符,字符串或整数转化为浮点数,整数后面多一位小数

aa = str(123.4)     #Correct
print aa            #result = '123.4'
bb = str(-124.a)    #SyntaxError: invalid syntax
print bb
cc = str("-123.45") #correct
print cc            #result = '-123.45'
dd = str('ddd')     #correct
print dd            #result = ddd
ee = str(-124.3)    #correct
print ee            #result = -124.3

Python整数、浮点数的多则运算----加、减、乘、除、商、取余、次幂

aa=1
bb=2
print(aa+bb)   #加法  3
print(aa-bb)   #减法   -1
print(aa/bb)   #除数   0.5
print(aa//bb)  #商   0
print(aa%bb)   #取余   1
print(bb\*\*3)   #次幂   8
print(aa+bb,aa-bb,aa/bb,aa%bb,bb\*\*3,sep="\\n")
3
-1
0.5
1
8
print(aa+bb,aa-bb,aa/bb,aa%bb,bb\*\*3,sep="\*\*\*")   3\*\*\*-1\*\*\*0.5\*\*\*1\*\*\*8

Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。

列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。

加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:

list = \[ 'abcd', 786 , 2.23, 'john', 70.2 \]
tinylist = \[123, 'john'\]

print(list) # 输出完整列表
print(list\[0\]) # 输出列表的第一个元素
print(list\[1:3\]) # 输出第二个至第三个的元素 
print(list\[2:\]) # 输出从第三个开始至列表末尾的所有元素
print(tinylist \* 2) # 输出列表两次
print(list + tinylist) # 打印组合的列表 

Python元字典

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

Dict\_1={'德国':'奔驰车队','英国':'迈凯伦车队','意大利':'法拉利车队'}
print(type(Dict\_1))
print(Dict\_1)
print(str(Dict\_1))
print(Dict\_1\['德国'\])     #获取键值
Dict\_1\['德国'\]='BMW'      #修改键值
print(Dict\_1\['德国'\])
Dict\_1\['中国'\]='红旗'     #增加键值
print(Dict\_1)
del Dict\_1\['英国'\]       #删除键值
print(Dict\_1)
Dict\_1.clear()           #清空列表
print(Dict\_1)

Python元组

元组是另一个数据类型,类似于List(列表)。

**元组用"()"标识。**内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。

tuple\_1=(1,'a','BMW','XFL',3)
tuple\_2=(2,'b','WMB','LFX',4)
print(tuple\_1)     #输出完整元组1
print(tuple\_2)     #输出完整元组2
print(tuple\_1\[1\])  #输出tuple\_1的第二个元素
print(tuple\_1\[2:\]) #输出tuple\_1的第三个之后的元素
print(tuple\_1\[:3\]) #输出tuple\_1的第四个之后的元素
print(tuple\_1\*2)   #输出两遍tuple\_1
print(tuple\_1+tuple\_2)   #输出tuple\_1和tuple\_2的混合元素 

Python逻辑运算

所有的基础逻辑运算结果:(1)一切皆真假(2)一切皆0和1(3)一切皆True和False

运算逻辑要有可比性:(1)整数与整数相比(2)整数与浮点数相比(3)浮点数与浮点数相比(4)字符串与字符串相比

(5)字符串不可与其他类型比大小,但是可以比相等

比较运算符

a=100
b=200
print(a==b)
print(a!=b)
print(a>b)
print(a<b)
print(a>=b)
print(a<=b)

输出结果:False True False True False True

逻辑运算(或且非运算)

a=100
b=200
print(a==b and a!=b)
print(a==b or a!=b)
print(not a==b)

输出结果:False  True  True

and优先级大于or

成员运算

str\_1='abcd'
str\_2='efgh'
print('a' in str\_1)
print('a' in str\_2)
print('e' in str\_2)
print('e' in str\_1)
print('a' not in str\_1)
print('a' not in str\_2)
print('e' not in str\_2)
print('e' not in str\_1)

输出结果:True False True False False True False True

身份运算(即比较内存地址)

result\_1=1
result\_2=1
result\_3=2
print(id(result\_1)==id(result\_2))
print(id(result\_2)==id(result\_3))

相同的值会默认指向相同的内存地址。

bedroom\_1="枕头"
pillow\_1="枕头"
print(id(bedroom\_1),id(pillow\_1))      #140469614890320 140468288321552
print(bedroom\_1 is pillow\_1)           #False
print(bedroom\_1 is not pillow\_1)       #True
bedroom\_1="枕头"
pillow\_1=bedroom\_1
print(id(bedroom\_1),id(pillow\_1))  #140469614896176 140469614896176
print(bedroom\_1 is pillow\_1)         #True
print(bedroom\_1 is not pillow\_1)   #False
bedroom\_1="枕头"
pillow\_1="枕头"
print(id(bedroom\_1),id(pillow\_1))
print(bedroom\_1 is pillow\_1)
print(bedroom\_1==pillow\_1) 

is比较符用于比较两个变量的地址,两个变量地址不相同则为False。==比较符比较的是两个变量的值,值相同则为True。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值