Python初学:变量是什么?盘点那些变量的基本概念

前言

Python变量可以看成一个小盒子,专门用来“盛放”程序中的数据。每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据。(文末送读者福利)

而这个小盒子,就是在内存中的一个地址,也可以理解成为一个门牌号。

将数据赋值给变量的过程就叫做赋值,Python里的赋值就使用‘=’来实现:

s=5
p='abc'
m=3.14159
t='中国人'
姓名='张三'#可以使用中文作为变量名,但不推荐

变量只能容纳一个值,当新的赋值语句修改原有的变量值,原来的值就不存在了。Python的变量赋值方法比较灵活,如:

m=3.14159
s=m+1#结果为4.14159
q=3+2-1*9 #结果为-4
o=s+(5*2)#结果为14.14159

在其他强类型语言(如C++、C、Java)中,变量赋值前需要申明,但Python无须先申明,可以直接赋值。

所以,Python属于弱类型语言。

弱类型语言有两个特点:

变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。

但是,不代表变量就没有类型,只是书写的时候不需要特别关注。可以使用type()来判断变量的类型:
在这里插入图片描述
结果显示:<class ‘int’>,说明这是一个整数型的变量,前面的class说明这个变量也是一个类,这也说明在Python中万事万物皆是类,后面我们会讲到。

int类型叫做整数类型,整数包括正整数、0 和负整数。如果数据比较长,Python规定,还可以用下划线来分隔,并不影响数值本身:
在这里插入图片描述
与之对应的就是小数,也称为浮点数。

浮点数和定点数是相对的:小数在存储过程中如果小数点发生移动,就称为浮点数;如果小数点不动,就称为定点数。

Python的小数有两种书写形式:

一种是十进制形式,如‘32.658,‘78.125’等等,另一种是指数形式,aen或者aEn的形式:

f= 5e5
print(f)
print(type(f))

p=5E5
print(p)
print(type(p))

运行结果:

500000.0
<class 'float'>
500000.0
<class 'float'>

Python中还有一种数字的类型叫复数类型,表达方式为a+bj:

c1 = 9 + 0.5j
print("c1: ", c1)
print("数据类型", type(c1))
c2 = 8 - 1.5j
print("c2: ", c2)
#对复数进行简单计算
print("c1+c2: ", c1+c2)
print("c1*c2: ", c1*c2)

运行结果:

c1:  (9+0.5j)
数据类型 <class 'complex'>
c2:  (8-1.5j)
c1+c2:  (17-1j)
c1*c2:  (72.75-9.5j)

当我们在Python里面执行0.1+0.2的时候,会发现一个惊人的有趣的现象,就是输出结果:

>>> 0.1+0.2
>>> 0.30000000000000004

为什么会这样?

原来是二进制的转换在作怪,前面我们讲到过机器语言的内容,Python将数字0.1和0.2转换成二进制的电信号输出给计算机。
在转换的时候,0.1(10)=0.00011001100110011…(2)这是一个无限循环的数,由于计算机存储的位数是有限制的,所以如果要存储的二进制位数超过了计算机存储位数的最大值,其后续位数会被舍弃(舍弃的原则是“0 舍 1 入”)。

这样就会出现上面的情况,而且在所有的编程语言中都会遇到这样的情况。
如果希望得到精确的结果,可以使用decimal模块或Fraction:

import decimal
a = decimal.Decimal("20.0")
b = decimal.Decimal("3")
print(20.0/3)
print(a/b)

from fractions import Fraction
print(20/3)
print(Fraction(20,3))

输出结果为:

6.666666666666667
6.666666666666666666666666667
6.666666666666667
20/3

除了数值型的变量,Python还有字符型变量。
字符型的变量是用’'或“”包含起来的(注意这里是英文输入法里的符号,小伙伴们千万不要踩坑)。

这里需要注意,如果字符串里有‘’或“”注意的字符,就需要转义:"he’s pen"这样的字符写成:

s='he\'s pen'
s="he's pen"

注意区分中文输入和英文输入的切换,很多新手辛辛苦苦写了几百行代码,因为一个标点符号检查了一个通宵的事情,时有发生。

关于换行的问题,一般采用‘\’换行,有的长字符串才有‘’‘XXXXX’‘’或者“”“XXXX”“”的办法,但是后面这种方式输出时是这样的:

s='''这是一个案例
     转行输出
     被隔开了'''
print(s)

结果:

这是一个案例
转行输出
被隔开了

另外一个很重要的情况如:“F:\Program Files\Python\python.exe”

就需要是有转义字符,写成"F:\Program Files\Python\python.exe"
在这里插入图片描述
Python 3.x 中,字符串采用的是 Unicode 字符集,这个以后在外面的实例程序中会专门讲解。

Python bytes 类型的数据非常适合在互联网上传输,可以用于网络通信编程;bytes也可以用来存储图片、音频、视频等二进制格式的文件。

字符串由若干个字符组成,以字符为单位进行操作;字节串由若干个字节组成,以字节为单位进行操作。

#通过构造函数创建空 bytes
s1 = bytes()
#通过空字符串创建空 bytes
s2 = b''
#通过b前缀将字符串转换成 bytes
by_s = b'http://www.baidu.com/python/'
print("by_s: ", by_s)
print(by_s[3])
print(by_s[7:22])


#通过 decode() 方法将 bytes 转换成字符串
str1 = by_s.decode('UTF-8')
print("str1: ", str1)

输出结果如下:

by_s:  b'http://www.baidu.com/python/'
112
b'www.baidu.com/p'
str1:  http://www.baidu.com/python/

再来看一个例子:

#通过构造函数创建空 bytes
s1 = bytes()
#通过空字符串创建空 bytes
s2 = b''
#通过b前缀将字符串转换成 bytes
by_s = b'http://www.baidu.com/python/'
print(by_s)
print(by_s[0])
print(by_s[7:22])
#为 bytes() 方法指定字符集
s4 = bytes('这是一段文字', encoding='UTF-8')
print("b4: ", s4)
#通过 encode() 方法将字符串转换成 bytes
s5 = "这是一段文字".encode('UTF-8')
print("b5: ", s5)
#通过 decode() 方法将 bytes 转换成字符串
q1 = s4.decode('UTF-8')
print("str1: ", q1)

输出结果:

b'http://www.baidu.com/python/'
104
b'www.baidu.com/p'
b4:  b'\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe6\xae\xb5\xe6\x96\x87\xe5\xad\x97'
b5:  b'\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe6\xae\xb5\xe6\x96\x87\xe5\xad\x97'
str1:  这是一段文字

Python 提供了 bool 类型来表示真(对)或假(错)使用 True /False来代表,
在这里插入图片描述
在 Python 中,所有的对象都可以进行真假值的测试,包括字符串、元组、列表、字典、对象等,后面会介绍。

坚持学习每天都能进步一点点!

读者福利:知道你对Python感兴趣,便准备了这套python学习资料,

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈



在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
在这里插入图片描述

好文推荐

了解python的前景: https://blog.csdn.net/weixin_49892805/article/details/127196159

python有什么用: https://blog.csdn.net/weixin_49892805/article/details/127214402

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值