Python 入门(三、 Python 变量和关键字)

认识 Python 变量定义和关键字 ...... by 矜辰所致

前言

前面的两堂课,我们算是正式准备好了 Python 的学习环境,接下来可以真正的进入 Python 的学习了。

对于一门语言来说,都会需要学习到变量,运算,表达式,逻辑控制,函数等等一系列的内容。我们一步一步来,本文我们从最简单的变量说起,然后再认识一下关键字。

Python 入门系列文章:
Python 入门(一、使用 VSCode 开发 Python 环境搭建)
Python 入门(二、什么是 Python 的虚拟环境)
.
我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!

一、 定义变量

在 Python 中定义变量非常简单,我们只需要给变量赋值就好了。

不需要指定它的数据类型,Python会自动检测变量的数据类型 。而且和某些语言,比如 C 语言不同的是,他变量名可以包含中文。

比如,如下一些变量:

在这里插入图片描述

定义变量的表达式 :

变量名 = 变量值
.

左边就是变量名,可以在规定范围内任意定义。这个规定范围的规则下面会说到,不能使用关键字。关键字下面也会说到。
.
中间的等号是 赋值运算符
.
右边是变量值, Python会自动检测变量的数据类型。具体的数据类型,下面我们也会讲到。

当然还要提到一点, 在 Python 中是区分大小写的,f 和 F 是两个不同的变量名。

二、关键字

我们在讲命名规则之前,我们要认识一下 Python 中的关键字。

什么是关键字?

关键字是一些预定义的、有特殊意义的单词,它们被 Python 解释器保留,用于表示特定的语法结构或指令。

关键字不能用作变量名、函数名或其他标识符,因为它们在 Python 语法中扮演着特定的角色。

Python 中的关键字有哪些?

这里我们可以通过一个 py 程序直接打印出来:

import keyword

print(keyword.kwlist)
print(len(keyword.kwlist))

在这里插入图片描述

这里我们也列一下,指不定以后要搜索呢:

False
None
True
and
as
assert
async
await
break
class
continue
def
del
elif
else
except
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
return
try
while
with
yield

对于上面所有的关键字都有他们的含义,我们不能使用他们作为关键字。

虽然 Python 区分大小写,类似关键字的变量名也不建议。

比如, False 是关键字,但是 false 是可以当做变量名的,但是这是一种特别不推荐的命名方式,千万不要用!!!

2.1 文件名不要乱取

在上面打印关键字的时候,作为新手的我,开始犯了一个低级错误: 乱用文件名。

在上面的程序中,我需要用到 keyword 模块import keyword ,然后我新建的 py 文件想都没想,直接用了 keyword.py , 结果当然有错误,Python 会尝试导入你的 keyword.py 脚本。

如下图:

在这里插入图片描述

所以这里也给新人们提个醒,文件名的定义也要长点心。

三、命名规则

认识完 Python 中的关键字,我们回到变量定义上来,在 Python 中,变量命名遵循一定的规则和建议 。

这里大家注意一下,所谓规则,就是必须遵循它,如果违犯就是错的,但是建议,就是通用做法,为了通用性和可读性,一些约定俗成好的建议,你不那么做也不至于是错的。

3.1 变量命名规则

我们先说下规则,这是变量命名必须遵循的:

  • 必须以字母或下划线开头
    变量名的第一个字符必须是字母(大写或小写)或下划线(_)。

  • 只能包含字母、数字和下划线
    变量名可以包含字母(A-z)、数字(0-9)和下划线(_)。

  • 区分大小写
    Python 是大小写敏感的,NumbernumberNumBer… 只要有不同都是不同的变量。

  • 不能使用关键字
    关键字是 Python 语言中预先保留的单词,不能使用。

  • 不能包含空格和特殊字符
    其实在上面说了,只能包含的符号就是下划线(_),记住这点其他什么都别管。

3.2 变量命名规范建议

说完规则,那么还有一些规范性的建议,这些是养成 Python 良好编程的习惯,让我们写出的代码可读性和维护性更强的一些做法:

  • 使用有意义的名称
    变量名应该尽可能简短且具有描述性,能够清楚地表达变量的用途或它所代表的数据。

  • 建议使用小写字母和下划线
    Python 中最常见的命名约定是使用小写字母和下划线来分隔单词,按照 PEP 8(Python的官方编码风格指南)变量名一般采用小写字母加下划线的方式,如 my_variable_name

  • 避免使用内置函数名
    不要使用 Python 的内置函数名作为变量名,使用如 list, str, print 等作为变量名可能会导致意外的行为或混淆。

  • 常量命名
    常量:通常指值不会改变的变量。通常使用全大写字母和下划线分隔,例如 MAX_VALUEPI

  • 使用单数或复数形式
    如果变量代表单个对象,使用单数形式,如 customer
    如果变量代表多个对象(例如列表或字典),通常使用复数形式,如 items

  • 保护和私有变量
    如果希望某个类的属性或方法不被外部直接访问,可以使用单个前导下划线 _ ,这表示这是一个内部实现细节。
    如果希望完全隐藏一个属性或方法,可以使用双前导下划线 __ ,这将触发名称改编机制(name mangling),Python 会对其进行名称改写,使得该属性或方法在类的外部无法直接访问。
    .
    单下划线是约定俗成的,而双下划线是 Python 解释器会自动对该名称进行改写 。

  • 遵循 PEP 8
    PEP 8 是 Python 的官方样式指南,它提供了关于如何命名变量、函数、类等的详细指导,这个有兴趣大家可以自己去查阅一下。

遵守以上规则,接受以上建议,大家就能给自己的 Python 程序定义合适的变量名了。

四、基本数据类型

知道了规则,前面说到了变量定义的时候 Python会自动检测变量的数据类型。

其实我们也可以通过程序打印出我们的变量类型,我们使用 print(type(变量名a)) ,就可以打印变量名a 的数据类型,如下:

在这里插入图片描述

Python 支持多种基本数据类型,常见的数据类型如下:

4.1 整数 (int)

整数类型用于表示整数,包括正整数、负整数和零。
test_a = 22
test_b = -655353535353
test_c = 0

print(test_a)
print(type(test_a))
print(test_b)
print(type(test_b))
print(test_c)
print(type(test_c))

22
<class ‘int’>
-655353535353
<class ‘int’>
0
<class ‘int’>

4.2 浮点数 (float)

 浮点数类型用于表示带有小数点的实数。
test_a = 29.99
test_b = -3.1890
test_c = 0.00

print(type(test_a))
print(type(test_b))
print(type(test_c))

<class ‘float’>
<class ‘float’>
<class ‘float’>

4.3 字符串 (str)

用于表示文本数据,由字符组成的序列,可以使用单引号 'hello' 或双引号 "world" 来创建字符串。
# coding=GB2312
test_a = '你好'
test_b = "还是你好"
test_c = 'hello world!'

print(test_a)
print(type(test_a))
print(test_b)
print(type(test_b))
print(test_c)
print(type(test_c))

你好
<class ‘str’>
还是你好
<class ‘str’>
hello world!
<class ‘str’>

4.3.1 文件编码说明

这里有个需要说明的地方,上面的示例中有一个 # coding=GB2312 是打印中文必须要的。 如果不加,会有如下提示:

在这里插入图片描述

我们这里可以根据 VScode 下面显示的 GB2312 编码格式来指定,我们使用了# coding=GB2312 注释后, Python 解释器会使用 GB2312 编码来解析文件,从而能够正确处理文件中的中文字符。

那上面的错误提示,提到的 UTF-8 是因为在 Python 3.x 版本中,默认编码已经是 UTF-8,因此在大多数情况下,并不需要声明编码,除非你的文件使用了不同于 UTF-8 的编码,但实际上即便是 UTF-8 加上声明有助于明确文件的编码,尤其是在代码需要在不同的环境或版本之间共享时。

4.4 布尔值 (bool)

布尔类型只有两个值:`True` 和 `False`,表示逻辑值,常用于条件语句。
test_a =  True

print(type(test_a))

<class ‘bool’>

4.5 列表 (list)

用于存储 有序且可变 的元素集合,例如 [ 1,'a',3.14] 。 使用中括号。

4.6 元组 (tuple)

类似于列表,但是与列表不同的是,元组是不可以修改的。用于存储 有序但不可变 的元素集合,例如 ( 1,'a',3.14) 。 使用小括号。

4.7 集合 (set)

用于存储 无序且不重复 的元素集合,例如 {1,'a',3.14} 。 使用大括号。

test_a =  [1,'a',3.14]
test_b =  (1,'a',3.14)
test_c =  {1,'a',3.14}

print(type(test_a))
print(type(test_b))
print(type(test_c))

<class ‘list’>
<class ‘tuple’>
<class ‘set’>

4.8 字典 (dict)

字典类型用于存储 键值对(Key-Value Pairs),键必须是不可变类型,如字符串或元组。字典是可变的。例如:{ 'name': 'eleven', 'age': 25, 'is_student': False }

什么叫 键值对?

在 Python 中,键值对(Key-Value Pairs)是一种存储数据的方式,其中每个数据项由一对值组成:一个键(Key)和一个值(Value)。键用于唯一标识数据项,而值则存储了与键相关联的数据。

在上面的示例中,'name''age''is_student' 是键,而 'eleven'25False 是与这些键相关联的值。

Python 中的字典(dict)类型是存储键值对的典型数据结构。字典是一种可变容器,它存储的是键值对,其中键和值可以是任何数据类型。每个键都映射到一个值,且同一个字典中键必须是唯一的。

4.9 字节 (bytes)

字节类型用于表示 字节串,是不可变的。 当我们在字符串前面加上一个 b 前缀的时候,Python 解释器就会将该字符串视为 字节, 例如:b’hello’。

4.10 字节数组 (bytearray)

字节数组类型与字节类型类似,但它是可变的。在字节前面加上一个 bytearray ,例如 bytearray(b'hello')

test_a =  b'hellokkkk'
test_b =  bytearray(b'hellokkkk')

print(type(test_a))
print(type(test_b))

<class ‘bytes’>
<class ‘bytearray’>

除了上面的这些数据类型, Python 还支持其他一些高级的数据类型,作为初步了解,我们这里就不一一展示,在后期学习的过程中如果遇到,再针对的说明。

五、数据类型转换

在实际开发中,难免会有不同类型的数据之间的转换,在 Python 中直接使用内置的转换函数来实现,我们来了解一些常用的类型转换方法。

  • 转换为整数(int()

    使用 int() 函数可以将字符串、浮点数等转换成整数

test_a = int(2.3333)
# test_b = int("3.3333") wrong
test_b = int("3")

print(test_a)
print(test_b)

2
3

  • 转换为浮点数(float()

    使用 float() 函数可以将整数、字符串等转换成浮点数

test_a = float(2)
test_b = float("3.333")

print(test_a)
print(test_b)

2.0
3.333

  • 转换为字符串(str()

    使用 str() 函数可以将几乎所有类型的变量转换为字符串形式。

test_a = str(33.33)
test_b = str(True)


print(test_a)
print(test_b)

33.33
True

  • 转换为布尔值(bool()

    使用 bool() 函数可以将其他类型的值转换为布尔值。

    空值转换为 False,非空值则转换为 True。

    空值比如: None,0, '', "", [], {}

# coding=GB2312
test_a = bool(None)
test_b = bool(0)
test_c = bool("")
test_d = bool('')
test_e = bool([])
test_f = bool({})

test_g = bool("大家好")
test_h = bool(453465)

print(test_a)
print(test_b)
print(test_c)
print(test_d)
print(test_e)
print(test_f)

print(test_g)
print(test_h)

False
False
False
False
False
False
True
True

  • 转换为列表(list()

    使用 list() 函数可以将字符串、元组等转换成列表。

test_a = list("hello")
test_b = list((1,2,3))

print(test_a)
print(test_b)

[‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
[1, 2, 3]

  • 转换为元组(tuple()

    使用 tuple() 函数可以将列表、字符串等转换成元组。

test_a = tuple("hello")
test_b = tuple([1,2,3])

print(test_a)
print(test_b)

(‘h’, ‘e’, ‘l’, ‘l’, ‘o’)
(1, 2, 3)

  • 转换为集合(set()

    使用 set() 函数可以将列表、元组等转换成集合。

test_a = set("hello")
test_b = set([1,2,3])
test_c = set((5,6,7))

print(test_a)
print(test_b)
print(test_c)

这个结果得上一下图片,前面说到过,集合是无序且不重复,所以两次运行结果顺序不一样:

在这里插入图片描述

基本的转换就介绍这么多吧,如果以后遇到其他的转换,会单独详细说明。

结语

本文我们我们学习了 Python 的变量名相关的定义,命名规则,以及认识了 Python 中的关键字。

在下一堂课,我们就要接触逻辑控制的语法结构了。

那么本文就到这里,谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

矜辰所致

您们的鼓励是我奋斗的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值