Python入门-基础语法之变量、语法规范(注释、pycharm)、小整数池(内存地址:id)(内容简单,新手小白都能看懂)(2)

0、前言

本篇内容简单不烧脑,适用于新手小白,有许多扩展小知识,希望可以帮助大家更好的学习python!

1、入门小知识

1.1 第一句代码 “hello world”

在学习Python前我们首先完成一个仪式,也就是输出我们的第一句代码:
print('hello world')

输出结果:

hello world

1.2 运行代码的方式

1、临时的: 在Python解释器内部写代码,写一句输出一句,不能永久保存,通常用于临时调试代码;如:IDLE
2、永久的: 将代码写入文件永久保存,利用专业的软件通过文件路径,可以调用python文件,从而执行程序代码;如:pycharm(提供了图形化操作界面,可以更好的编写代码)

1.3 前提

  1. Python代码中的语法符号,都是英文状态的
  2. 我们学习Python语言是为了控制计算机,让计算机像人一样去工作,所以Python这门语言中,所有语法的意义都是让计算机具备人的某一项技能,这句话是我们后续理解所有Python语法的根本。

1.4 语法规范

1.4.1 引号的使用

在python中引号的使用必须成双成对,不能出现两边使用不同的引号,如:
print('正确写法1') # 单引号
print("正确写法2") # 双引号
print('错误写法") # 两边引号不成对,会报错

1.4.2 注释

1.4.2.1 什么是注释?
  1. 注释就是对代码的解释说明
  2. 注释的内容不会被当做代码运行
1.4.2.2 为什么需要注释?
  1. 主要是为了增强代码的可读性,方便理解
  2. 用于临时调试代码(在开发程序的时候)
1.4.2.3 如何使用注释?

注释分为两种:

  1. 单行注释:
    在一行中以英文 # 号开头,# 号后面的内容都不会被运行;如:
# print("hello world!")
# print("hello world!") 我不会被运行哦!

扩展:

  • Pycharm中在 # todo 后添加的注释会被高亮显示,如:
    请添加图片描述
  • pycharm中的快捷键
    ctrl +c 复制
    ctrl +v 粘贴
    ctrl +s 保存
    ctrl +x 剪切
    ctrl +a 全选
    ctrl +z 回退一步
    ctrl +d 复制当前行
    ctrl +y 删除当前行
    ctrl +/ 快速注释、解开注释
  1. 多行注释:
    使用三对引号进行包裹,引号内的内容不会被运行,成对的单引号(‘’’ ‘’')或双引号(“”" “”")都可以;如:
'''引号中的内容都不会被运行-------------------
    print("hello world") 
    2223333
    hhhh
'''

"""
我也不会被运行!666
1111
hahaha
"""

1.4.3 pycharm中的语法规范

在pycharm中编写代码,我们经常会在代码下看到许多波浪线,一般我们将它们分为两类:

  1. 红色波浪线: 表示该代码语法上有错误,运行后会报错,需要修改
  2. 其它颜色波浪线: 这些波浪线通常不是报错,不会影响代码的运行,但是不规范

说明:

规定: 类似法律,没有遵守python的语法规定,编写出的代码电脑看不懂就会报错
规范: 类似道德,在Pycharm中有自己定义的规范 pep8;他认为按照它的标准编写的代码更好看,不遵守不会影响代码运行

1.4.4 pycharm中出现的bug/报错

分为以下几种:

  1. 语法错误 SyntaxError
    代表你写的语法有问题,不符合Python的语法规范,电脑看不懂
    需要根据报错提示,解决bug,这是我们需要具备的一个能力
  2. Error(异常)
    代码逻辑有问题,根据报错提示,进行修改
  3. bug
    代码可以运行,但运行结果和你预期的不符,这时需要一点点的进行代码调试,慢慢分析自己的代码,直到符合预计结果

2、变量

拓展:

在C、JAVA等语言中在写完一句代码后以 ; 号结尾,而在python中一行通常只写一句代码,且不用以 ; 号结尾;但其实Python是可以用 ; 号结尾的,但不建议这样做;如:

print("hello world!"); print('hahahahaha'); print('12121212')

运行结果:

hello world!
hahahahaha
12121212

说明:
若Python以 ; 号结尾,则一行可以同时编写多句代码,运行结果不变,但这样代码就会变得冗余,从而降低可读性,不方便理解,所以我们通常一行只写一句代码

2.1 变量的定义

2.1.1 什么是变量?

变量是可以发生变化的量,用来临时保存数据

2.1.2 为什么要有变量?

为了使计算机像人一样具备临时记忆的功能
从底层上讲:数据保存在电脑内存中,而变量就是这块内存空间的名字

2.1.3 如何使用变量?

必须先定义变量,在使用变量;定义变量后,直接使用变量名,就可得到对应的变量值
格式:变量名 =  变量值
如:
x = '我是变量x'
y = '我是变量y'
z = '我是变量z'
print(x) # 使用变量必须在定义变量之后
print(y)
print(z)

输出结果:

我是变量x
我是变量y
我是变量z

2.1.4 变量名覆盖

当我们定义好一个变量后,在后面又定义了一个相同的变量,那么前面的变量就会被后面的变量覆盖掉;如:

a = 666
a = 777 # 将前面的变量值覆盖掉
print(a)

输出结果:

777

2.2 深度解析变量

基本原则: 必须先定义,在使用

2.2.1 定义变量到底发生了什么?

定义变量:变量名 = 变量值
执行上面的语句后,会发生以下的事件:

  1. 在电脑内存中开辟一块空间
  2. 将定义的变量值放入到这个空间当中
  3. 将这块空间的地址绑定给变量名
    最后python通过变量名来调用存放到内存中的变量值

结合图画理解:
在这里插入图片描述

2.2.2 变量命名规定

  1. 只能是字母,数字,英文下划线的组合
  2. 不能以数字开头
  3. 不能是python中的关键字
    关键字:python中提前定义好了有意义的字符,若我们跟它取相同的名字,电脑就无法判断该使用谁的数据,导致出错

常见的关键字,可以在Pycharm中运行以下代码查看:

import keyword
print(keyword.kwlist) # 打印出python中的关键字

输出结果:

['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']

拓展:

变量名可以是中文吗?
其实是可以的,但不建议使用中文名变量,容易出现bug

我是阿豪 = 666666
print(我是阿豪)

输出结果:

666666

2.2.3 推荐的变量名(取名要讲究)

  1. 见名知意,不要用无意义的字符,避免混乱
  2. 推荐使用小写,下划线链接法,驼峰法

如:

name = '盲敲代码的阿豪'
time = '14:20'
id_student= '24001'
Ahao = '阿豪' #驼峰法
AHao = '阿豪'

2.2.4 常量

常量指在程序运行过程中不会改变的量
2.2.4.1 为什么使用常量?
在编写代码程序时,有些值是固定的,不会被改变,这时可以把这个值定义为一个常量来使用;
如:圆周率 π=3.1415926....

在python中没有常量的概念,我们口头上约定将全为大写的字母规定为一个常量;如:

CONSTANT = '常量' # 该变量在程序中不会改变

2.2.5 变量的本质

我们定义变量是因为后续会经常使用到这个数据,若一个数据只会用到一次,那么就没必要定义它
我们在编写代码时一定要尽量简写代码,不要写无意义的代码,避免代码重复;用最少得代码得到想要的结果

2.2.6 变量的三大特性(id、type、value)

  1. id
  • id是变量在内存中的唯一编号
  • 变量的内存地址不同id肯定不同
  • 变量的内存地址相同,内存中保存的数据也相同
    我们通常通过id来判断是否为同一个数据
name = '阿豪'
x = '阿豪'
print(id(name))
print(id(x))

输出结果:

1982956173616
140728009301456
  1. type (数据类型)
    为什么需要数据类型?
    电脑的内存空间是有限的,若所有的数据类型都相同,在编写代码时就无法满足不同的需求,从而浪费资源,所以数据类型的作用:
    1、合理的利用内存空间
    2、可以更好的操作数据,以满足不同需求
    数据类型是可以更好利用内存空间的一种方式,不同的数据类型无法放在一起使用

  2. value (数据)
    内存中保存的数据,通过变量名找到并调用该数据

拓展:python中的小整数池

我们在打开pycharm时,会出现卡顿,启动变慢,是什么原因呢?

前面我们提到过,不同变量的内存地址不同,id就不同,而事实真的如此吗
  1. 在python解释器(IDLE)启动时会开辟一个块内存空间,作为小整数池,范围在 [-5,256],也就是变量赋值在这个范围间的id是相同的,如:
    请添加图片描述
    从上面可以看到,明明定义了两个不同的变量,但id却相同,就是因为python解释器开辟了一块内存空间专门用于对变量值在 [-5,256] 间的整数使用,当有不同的变量使用在这个范围的同一个数时,他们就会指向同一块内存空间,所以内存地址相同,id也相同

  2. 在pycharm启动时同样会开辟一个小整数池,且开辟的范围更大,所以pycharm启动较慢其实是因为需要开辟更大的内存空间
    在这里插入图片描述

除了整数,还有一些字符串也是如此,提前开辟了空间

  • 32
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

盲敲代码的阿豪

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值