返回顶部
首页 > 资讯 > 后端开发 > Python >Python的基础语法(二)
  • 188
分享到

Python的基础语法(二)

语法基础Python 2023-01-31 00:01:32 188人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

0. 前言 接着上一篇博客的内容,我将继续介绍python相关的语法。部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂。 1. 表达式 由数字、符号、括号、变量等组成的组合。 算术表达式 逻辑表达式 赋值表达式 在Pyth

0. 前言

接着上一篇博客的内容,我将继续介绍python相关的语法。部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂。

1. 表达式

由数字、符号、括号、变量等组成的组合。

  • 算术表达式
  • 逻辑表达式
  • 赋值表达式
  • Python中,变量无需实现声明,也不需要指定类型。
a = 1   # 无需声明和指定类型

在Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义。

2. 内存管理

在其他语言,如c++和C中,内存管理是非常重要的,因为在一段内存地址被释放之后,内存中会留下一个“空洞”,造成内存碎片化。通常地,开发者会利用特定的策略来管理内存,把需要经常变动的值放到一个区域,静态的值放到另一个区域。开发者手动管理维护内存,不仅麻烦,还很容易留下安全隐患。

在Python编程中无须关心变量的存亡,也不关心内存的管理。Python语言和Java一样,采用了类似的垃圾收集的机制(Garbage Collection)。

简单的理解:首先,在Python中,一切皆对象。Python使用引用计数ob_refcnt记录所有对象的引用数。当对象引用数ob_refcnt变为0,它就被认为是生命结束了,内存也会被回收。例如在函数运行结束时,局部变量就会被自动销毁,内存被回收。变量赋值给其他对象时,内存被回收。下面举一个例子:

num1 = 12   # 定义一个变量,这时候在内存中存放12这个值,num标识符对它进行引用,ob_refcnt=1
num2 = num1 # 现在num2和num1的值都在同一个地址,它被引用的次数为2,ob_refcnt=2

# 现在对上面两个变量重新赋值,也就是相当于重新定义
num1 = 1
num2 = 2
# 这个时候,刚才的内存中的12,因为被引用的次数为0,也就是ob_refcnt=2,那么内存就被回收了

缺点:内存回收机制(Grabage Collection)因为是自动的,所以效率注定不高,在对程序性能要求高的环境中,这一点是致命的。 (不过也还是可以自己动手调一下的,这里暂时不提)

作为初学入门的同学,先了解这么多就可以了,如果想再全面地了解,这里推荐一篇博客我认为写得挺好的,以供参考。[点击这里]

3. 程序控制

3.1 顺序结构

所谓顺序结构,也就是串行。就是一条一条语句按照顺序执行。比如:先洗手,再吃饭,再洗碗。

# 下面三种行为按照从上到下的顺序执行
washing_hand()  # 洗手
eat()           # 吃饭
washing_dishes()    #洗碗

3.2 分支结构

分支结构:根据不同情况判断,条件满足执行某条件下的语句。

3.2.1 if...else...语句

比如,小明考试及格,就吃金拱门,考试不及格,就罚做家务。

if score >= 60: # 这里设置60分为及格
    eat_KFC()   # 及格了就吃金拱门
else:   # 否则
    do_housework() # 不及格就做家务

if...else...就是Python中用作判断的语句。if后面的条件语句就是判断的依据,它返回的是一个布尔值。而if下面的都是代码块,是在if条件语句为True的时候,才会执行。

3.2.2 if...elif...else...语句

上面的例子是单分支结构,要实现多分支结构该怎么办呢?下面有一个例子:

myScore = 58
if myScore >= 80 and myScore<=100:
    print("Good.")  # 八十分以上,优秀
elif myScore >=60 and myScore <80:
    print("Pass.")  # 六十分以上,及格
elif myScore<60 and myScore>=0:
    print("Fail.")  # 六十分以下,不及格
else:               # 在上面条件之外的,也就是小于0分或者大于100分了,那么就算做是错误分数了
    print("错误分数")

有部分情况下,条件语句并没有返回一个__布尔值__怎么办呢?在Python中,如果在if后面的条件语句没有返回一个布尔值,那么它会把这个语句放进bool()函数中进行转换,转换后就会返回一个布尔值了。

if 3:   # 这里的3并不是一个条件语句,它经过bool()函数转换成布尔值,但是这个操作是我们看不到的
    print('True')
else:
    print('False')

下面,给出一些常见的对象/常量经过bool()函数转换后的值,以供参考

对象/常量
“”-空字符串
“string”-非空字符串
0
非0 - 一个非0实数
()空元组
[]空列表
{}空字典
None

3.3 循环结构

循环结构:条件满足就反复执行,不满足就不执行或不再执行。

3.3.1 while语句

比如,小明在七点前要写作业,小明在7点之后可以看电视,所以他隔一会就检查一次。

time = 5
while time<7:   # 这是一个循环体,如果time<7,就会一直循环
    do_homework()   # 七点前做作业
    time += 1       # 每一次循环加一个小时
watching_tv()   # 跳出循环之后就执行看电视操作了

和if...else..结构类似,while下面的语句块也是在条件满足的时候执行,直到条件不满足后退出。

3.3.2 for语句

还有另一个语句可以实现循环结构——for语句。他的结构是这样的:

for element in sequence:    # 当可迭代对象中有元素可以迭代,进入循环体,执行block
    block

上面所提到的可迭代对象,简单理解可以说是一组元素,比如[1, 2, 3]

首先,先介绍一下range(start, stop[, step])函数。
参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

下面再举个for循环的例子:

for i in range(10): 
    print(i)
    
执行结果:
0
1
2
3
4
5
6
7
8
9

循环一共执行了10次,每一次i获取range(10)返回的列表中的一个元素。直到range(10)的元素被获取完了,循环就结束了。

3.3.3 continue语句

continue语句的作用是:中断当前循环的当次操作,继续下一次循环,如果没有下一次循环就结束循环。举例,打印10以内的偶数:

for i in range(10):
    if i % 2 == 1:
        continue
    print(i)

3.3.4 break语句

break语句:终止当前循环,跳出循环体。

举例: 列举1000以内被7整除的前20个数

count = 0   # count是一个计数器
for i in range(0, 1000, 7):
    print(i)
    count += 1      # 每次列举一个数就加1
    if count >=20:      # 如果count大于等于20
        break       # 终止当前循环,跳出循环体

注:循环被break打断叫不正常结束,else子句无效

3.3.5 循环 else子句

在while和for后面跟着的一个子句,结构如下

while condition:
    block
else:       # 在while循环正常结束后执行else里面的代码块
    block

for element in sequence:
    block
else:       # 在for循环正常结束后执行else里面的代码块
    block

循环异常抛出也是不正常结束,else子句无效。这种子句在特定情况下很有用,比如用于检测循环是否正常结束。

3.4 嵌套结构

上面我们说的分支和循环,都是可以嵌套的。什么是嵌套呢?下面举个例子,判断一个数为几位数:

print("输入一个0-99999的数")
num = input(">>")   # input()函数用作读取键盘输入
num = int(num)      # input()函数读取的输入为字符串类型,因为Python是强类型语言,所以这里要做一个类型转换,转换为整型
if num >= 1000:
    if num >=10000:
        print(5)
    else:
        print(4)
else:
    if num >= 100:
        print(3)
    elif num >= 10:
        print(2)
    else:
        print(1)

在if...else...中又插入一个或多个if...else...,这种方式就叫做嵌套。

上面的例子中,我并不是从五位数到四位数到三位数这样一路判断下来的,一方面是为了演示嵌套结构,另一方面,我这里用到了二分搜索算法,这种算法从中间开始查找,如果是判断一个一百位数,或者一千位数,这样的算法明显会比顺序查找高效得多。在以后的博客,我会再具体介绍算法相关的内容。

以上为Python基础语法的第二部分,下一个部分将在下一篇博客中介绍。

--结束END--

本文标题: Python的基础语法(二)

本文链接: https://lsjlt.com/news/181929.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python的基础语法(二)
    0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法。部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂。 1. 表达式 由数字、符号、括号、变量等组成的组合。 算术表达式 逻辑表达式 赋值表达式 在Pyth...
    99+
    2023-01-31
    语法 基础 Python
  • Java——基础语法(二)
    前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★...
    99+
    2023-09-04
    java 开发语言
  • Python基础篇-Python基础语法
    为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname...
    99+
    2023-01-31
    基础 语法 Python
  • python的基础语法
    python数据类型:(按特征划分) 数字类型:1. ×××:布尔形、长整型L、标准×××2. 非×××:双精度型、复数、decimal(不是内建类型) 序列类型:1. 字符串(str)2. 元组(tuple)3. 列表(list) 映像类...
    99+
    2023-01-31
    语法 基础 python
  • python基础语法
    保留字也叫做关键字,不能把它们用在任何标识符名称,可以使用以下命令来查看python的保留字 1 import keyword 2 print(keyword.kwlist) int、float、complex 1 # i...
    99+
    2023-01-30
    语法 基础 python
  • python语法基础
    注释 在python中,注释是以任何存在于#右侧的文字,其主要作用是写给程序读者看的笔记。 例如 单行注释 >>print("hello world") #这是一个注释 多行注释使用一对''' ''' 这是注释 这是注释 这...
    99+
    2023-01-31
    语法 基础 python
  • Python--基础二
    Python基础:字符串str & 列表list & 元组tuple & 字典dict & 集合set 字符串 str 字符串是以单引号或双引号括起来的任意文本 字符串不可变 创建字符串 str1 = ...
    99+
    2023-01-30
    基础 Python
  • Python基础(二)
    内置函数文件操作操作文件时,一般需要经历如下步骤:打开文件操作文件一、打开文件1文件句柄 = file('文件路径', '模式')注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调...
    99+
    2023-01-31
    基础 Python
  • python基础二
    一、字典类型  *)字典是python中唯一的映射类型 ,key-value(哈希表),字典对象是可变的,但key必须用不可变对象。  *)字典的创建和字典值得访问   ##字典的内容在查看时不能通过索引来进行查看 *)内建方法:fromk...
    99+
    2023-01-31
    基础 python
  • Python基础语法(Python基础知识点)
    Python与Perl,C和Java语言等有许多相似之处。不过,也有语言之间有一些明确的区别。本章的目的是让你迅速学习Python的语法。 第一个Python程序: 交互模式编程: 调用解释器不经过脚本文件...
    99+
    2022-06-04
    基础 知识点 语法
  • 2 Python的基础语法
    概述         在上一节的内容中,我们介绍了Python的诞生、发展历程、特色、缺点和应用领域。从本节开始,我们将正式学习Python。Python是一门简洁和优雅的语言,有自己特殊的一些语法规则。因此,在介绍Python编程的有关知...
    99+
    2023-08-30
    python 开发语言 基础语法 基本知识
  • Python的基础语法(一)
    0. 前言 最近正在重新整理Python的基础知识,以便更好地学习新知识。这一部分主要是讲述Python基础语法的演示。下面的语法都是基于Python3的语法。 1. 注释 注释:Python的注释方法有两种: 单行注释: # 你添加...
    99+
    2023-01-31
    语法 基础 Python
  • python基础语法(三)
    感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个人主页 🥸🥸🥸C语言 &#x...
    99+
    2023-09-20
    python 开发语言 青少年编程 笔记 c语言
  • Python基础语法(一)
    python学习之旅(一) 学习汇总入口【Python】学习汇总(超详细思维导图) 文末附带全文概览思维导图 写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧! 一.字...
    99+
    2023-10-09
    python 开发语言
  • python基础语法(五)
    目录 函数函数是什么语法格式函数参数函数返回值 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个人主页 &#...
    99+
    2023-10-24
    python java 前端 学习方法 笔记 经验分享
  • python基础语法(六)
    目录 变量作用域函数执行过程链式调用嵌套调用 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个人主页 ...
    99+
    2023-10-24
    python java 数据库 笔记 学习方法 其他
  • Python基础语法(三)
    1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了。在这里提及一些需要知道的知识点。 int、float、complex、bool都是类,1\3.14\2+3j都对象(即实例)。这也符合Pyt...
    99+
    2023-01-31
    语法 基础 Python
  • 3. Python基础语法
    我们在文言文中经常会看到注释,注释可以帮助读者对文章的理解。代码中的注释也是一样,优秀的代码注释可以帮助读者对代码的理解。当然在代码编写过程中,注释的使用不一定只是描述一段代码,也可能的是对代码的调试。 Python注释一共有# 、'''...
    99+
    2023-01-31
    语法 基础 Python
  • Python基础--Python3基础语
    Python3 基础语法编码默认情况下,Python3源码文件以UTF-8编码,所有字符串都是Unicode字符串。当然也可以为源码文件指定不同的编码,例如:# -*- coding: cp-1252 -*-标识符1.第一个字符必须是字母表...
    99+
    2023-01-31
    基础 Python
  • 【30天python从零到一】---第三天:python基础语法(二)
    🍎 博客主页:🌙@披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:&...
    99+
    2023-09-04
    python 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作