详解python基础——变量、数据、语句、函数、注释

在知道了基础程序构成的变量、数据、语句、函数、注释后,我们就要开始深入学习每个构成要素的细节了!

让我们开始今天的正题!

一、变量

变量的命名和使用

在python中使用变量时,需要遵守一些规则和指南。违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解。请务必牢记下属有关变量的规则

* 变量名只能包含字母、数字和下划线。变量名能以字母或下划线打头,但不能以数字打头。例如,可将变量命名为 messag_1,但不能将其命名为 1_messa。

* 变量名不能包含空格,但能使用下划线来分隔其中的单词。例如,变量名 greeting_message可行,但变量名 greeting messa 会引发错误。 

* 不要将python关键字和函数名作为变量名,即不要使用python保留用于特殊用途的单词,如print等(详细内容请使用help函数查看或者去python官网查找)。

* 变量名应既简洁又具有描述性。例如,name 比 n 好,student_name 比 s_n 好,name_length 比 length_of_persons_name 好。

* 慎用小写字母 l 和大写字母 O ,因为它们可能被人错看成数字 1 和 0 。

要创建良好的变量名,需要经过一定的实践,在程序复杂而又有趣时尤其如此。随着编写的程序越来越多,并开始阅读别人编写的代码,你将越来越善于创建有意义的变量名。

二、数据

前面我们提到过python中默认的四种类型数据:

  1. 整型 int

    整数,2345,10,50

  2. 浮点型 float

    小数,3.14或者科学计数法314e-2

  3. 布尔型 bool

    表示真假,仅包含:TrueFalse

  4. 字符串型 str

    由字符组成的序列。 "abc",'why',"欲赎","python爱好者"

下面我们来一一看看它们的用法和注意事项:

1.整型和浮点型

整数

三种进制

既然学习编程,那我们肯定都多少了解过二进制,那么学习不同进制就是学习整数的第一步!

Python中,除了十进制,还有其他三种进制:

  • 0b0B,二进制 0 1
  • 0o0O,八进制 0 1 2 3 4 5 6 7
  • 0x0X,十六进制0 1 2 3 4 5 6 7 8 9 a b c d e f

12
12


0b101
5


0o19
SyntaxError: invalid syntax


 0o10
8


 0xff
255


 0xf
15


0x10
16

使用int()实现类型转换:
  1. 浮点数直接舍去小数部分。如:int(9.9)结果是:9
  2. 布尔值True转为1False转为0。 如:int(True)结果是1
  3. 字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错
自动转型

整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0的结果是10.0

整数可以任意大

Python2中,int是32位,可以存储从-21474836482147483647的整数(约±21亿)。Long类型是64位,可以存储:-2^63--2^63-1之间的数值。

Python3中,int可以存储任意大小的整数,long被取消。

浮点数 float

  1. 浮点数用科学计数法表示。比如:3.14,表示成:314E-2或者314e-2
  2. 这些数字在内存中也是按照科学计数法存储。

类型转换和四舍五入
  1. 类似于int(),我们也可以使用float()将其他类型转化成浮点数。

  2. 整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0的结果是10.0

  3. round(value)可以返回四舍五入的值。但不会改变原有值,而是产生新的值

增强型赋值运算符

运算符+-*///**%和赋值符=结合可以构成“增强型赋值运算符”。

运算符例子等价
+=a += 2a = a + 2
-=a -= 2a = a-2
*=a *= 2a = a * 2
/=a /= 2a = a / 2
//=a //= 2a = a//2
**=a **= 2a = a**2
%=a %= 2a = a % 2

⚠️注意:

  1. “+=”中间不能加空格!

  2. 结合的是右侧整个表达式:

    y *= x+2 # 相当于:y = y*(x+2) 而不是:y = y*x+2

数字和基本运算符

Python支持整数(如:50,520)和浮点数(如:3.14,10.01.23e2),我们可以对数字做如下运算。

运算符说明示例结果
+加法3+25
-减法30-525
*乘法3*618
/浮点数除法8/24.0
//整数除法7//23
%模(取余)7%43
**2**38

除数为0时,会发生异常!

2.布尔值

Python2中没有布尔值,直接用数字0表示False, 用数字1表示True

Python3中,把TrueFalse定义成了关键字,但他们的本质还是10,甚至可以和数字相加。

在Python语言底层,会将布尔值True看作1,将布尔值False看作0,尽管从表面上看,True和1、False和0是完全不同的两个值,但实际上,它们是相同的。

在Python语言中有一些特殊的布尔类型值为False,例如False、0、0.0、空值None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空range对象、空迭代对象。其他情况,均为True。

3.字符串

  1. 字符串的本质是:字符序列。
  2. Python不支持单字符类型,单字符也是作为一个字符串使用的。

⚠️Python的字符串是不可变的,我们无法对原字符串做任何修改。但,可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。

很多人初学编程时,总是担心自己数学不行,潜意识里认为数学好才能编程。实际上,大多数程序员打交道最多的是“字符串”而不是“数学”。因为,编程是用来解决现实问题的,因此逻辑思维的重要性远远超过数学能力。

字符串的编码

Python3直接支持Unicode,可以表示世界上任何书面语言的字符。Python3的字符默认就是16位Unicode编码,ASCII码是Unicode编码的子集。

image-20211026162907356

使用内置函数ord()可以把字符转换成对应的Unicode码

使用内置函数chr()可以把十进制数字转换成对应的字符

>>> ord('A')        #65
>>> chr(66)         #'B'

转义字符

我们可以使用\+特殊字符,实现某些难以用字符表示的效果。比如:换行等。常见的转义字符有这些:

转义字符描述
(在行尾时)续行符
\反斜杠符号
'单引号
"双引号
\b退格(Backspace)
\n换行
\t横向制表符
\r回车

不换行打印

我们前面调用print时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行符。我们可以自己通过参数end = “任意字符串”。实现末尾添加任何内容:

从控制台读取字符串

我们可以使用input()从控制台读取键盘输入的内容。

暂时先将这么多,关于字符串的内容有点多,先留一点给大家消化一下

三、语句

(因为这玩意不好在这里讲太多,我就先把前面的东西复制过来大家再看一遍,复习一下)

语句也就是我们文字描述中的解决步骤,比如在本案例中用到的就是if语句,这个很简单,也就是字面意思“如果”,形象记忆就是条件状语从句(英语学渣乱入)

当然书面描述是——控制语句

控制语句:把语句组合成能完成一定功能的小逻辑模块。

分为三类:顺序、选择和循环。

学会控制语句,是真正跨入编程界的“门槛”,是成为“程序猿”的“门票”。

1. “顺序结构”代表`“先执行a,再执行b”`的逻辑。

比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;
2. “条件判断结构”代表`“如果…,则…”`的逻辑。

比如,如果女朋友来电,则迅速接电话;如果看到红灯,则停车;
3. “循环结构”代表`“如果…,则重复执行…”`的逻辑。

比如,如果没打通女朋友电话,则再继续打一次; 如果没找到喜欢的人,则再继续找

很神奇的是,三种流程控制语句就能表示所有的事情!

> 不信,你可以试试拆分你遇到的各种事情。实际上,任何软件和程序,小到一个练习,大到一个操作系统,本质上都是由“变量、选择语句、循环语句”组成。

四、函数

函数用法和底层分析

  1. 函数是可重用的程序代码块。
  2. 函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。

image-20211023110913745

在编写函数时,函数体中的代码写法和我们前面讲述的基本一致,只是对代码实现了封装,并增加了函数调用、传递参数、返回计算结果等内容。

⚠️为了让大家更容易理解,掌握的更深刻。我们也要深入内存底层进行分析。绝大多数语言内存底层都是高度相似的,这样大家掌握了这些内容也便于以后学习其他语言。

函数简介

函数(function)的基本概念

  1. 一个程序由一个一个的任务组成;函数就是代表一个任务或者一个功能(function)。
  2. 函数是代码复用的通用机制

Python函数的分类

image-20211023112843842

Python函数分为如下几类:

  1. 内置函数

    我们前面使用的str()list()len()等这些都是内置函数,我们可以拿来直接使用。

  2. 标准库函数

    我们可以通过import语句导入库,然后使用其中定义的函数

  3. 第三方库函数

    Python社区也提供了很多高质量的库。下载安装这些库后,也是通过import语句导入,然后可以使用这些第三方库的函数

  4. 用户自定义函数

    用户自己定义的函数,显然也是开发中适应用户自身需求定义的函数。今天我们学习的就是如何自定义函数。

函数的定义和调用

恭喜你,当你学到这里的时候又学到了一个偷懒的技巧,在成为python大佬的基础上又迈进了一步!

核心要点

Python中,定义函数的语法如下:

def 函数名 ([参数列表]) :
    '''文档字符串'''
    函数体/若干语句

简单定义一个函数:

image-20211117100503083

要点:

  1. 我们使用def来定义函数,然后就是一个空格和函数名称;

    • Python执行def时,会创建一个函数对象,并绑定到函数名变量上。
  2. 参数列表

    • 圆括号内是形式参数列表,有多个参数则使用逗号隔开
    • 定义时的形式参数不需要声明类型,也不需要指定函数返回值类型
    • 调用时的实际参数必须与形参列表一一对应
  3. return返回值

    • 如果函数体中包含return语句,则结束函数执行并返回值;
    • 如果函数体中不包含return语句,则返回None值。
  4. 调用函数之前,必须要先定义函数,即先调用def创建函数对象

    • 内置函数对象会自动创建
    • 标准库和第三方库函数,通过import导入模块时,会执行模块中的def语句

形参和实参

形参和实参的要点:

  • 圆括号内是形式参数列表,有多个参数则使用逗号隔开
  • 定义时的形式参数不需要声明类型,也不需要指定函数返回值类型
  • 调用时的实际参数必须与形参列表一一对应

【操作】定义一个函数,实现两个数的比较,并返回较大的值

上面的printMax函数中,在定义时写的printMax(a,b)ab称为“形式参数”,简称“形参”。也就是说,形式参数是在定义函数时使用的。 形式参数的命名要符合“标识符”命名规则

在调用函数时,传递的参数称为“实际参数”,简称“实参”。上面代码中,printMax(10,20)1020就是实际参数。

五、注释

这东西方在最后有两个原因,

一、是因为这东西真的非常重要,学会写注释你才好读懂代码,不管是自己的还是别人的,学会写注释是成为好程序员的必经之路!

二、给大家放松一下,毕竟今天的知识点有点多,放个简单的给大家的大脑放松放松。(欸嘿!)

image-20211023175406042

注释是程序中会被Python解释器忽略的一段文本。程序员可以通过注释记录任意想写的内容,通常是关于代码的说明。

  1. 单行注释

    每行注释前加#号。当解释器看到#,则忽略这一行#后面的内容

  2. 段注释(多行注释)

    使用三个连续单引号'''或三个双引号"""。当解释看到''',则会扫描到下一个''',然后忽略他们之间的内容。

    ⚠️三个连续引号,其实就是定义了一个字符串。只不过,没有变量指向,会被当做垃圾回收(关于本句话的含义,后面讲完面向对象再看)

补充

最后给大家补充一个小知识点:

在python中我们一般不加{ }来表示一个块,所以更注重用缩进来区分某个引用的位置

image-20211119171358122

缩进风格

  1. 恰当的空格,缩进问题

    1. 逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
    2. 语句从新行的第一列开始。
  2. 缩进风格统一:

    1. 每个缩进层次使用 单个制表符 或四个空格(IDE会自动将制表符设置成4个空格)
    2. Python用缩进而不是{}表示程序块的层次关系
  3. Python区分大小写

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

欲赎

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

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

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

打赏作者

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

抵扣说明:

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

余额充值