Python从入门到放弃(三):基本语句和语法

2023-10-27

一.一些改变

1.Python增加了什么

相比起C++或者其他一些语言,Python增加了一个冒号”:”.所有的python复合语句,都是首行由冒号来提醒,这个一定不能够掉了!且接下来是以缩进的形式来书写.(C++或者一些语言是大括号括起来的).后面会看到这个冒号是怎么用的.

2.python舍弃了什么

1.很多的括号可以去掉,比如if后面的括号能够去掉,while后面的括号能够去掉,等等
2.终止一行就是终止语句,所以不需要分号”;”作为程序的终止的标志.
3.缩进的结束就是一段复合代码块的结束!!!

二.赋值

有语言的基础的发现,赋值还是和以前的赋值方式差不多,但是Python有了更多的方便的新特点.

Ⅰ.一些概念

a)赋值语句建立对象引用值(因此,python变量更加像是指针)
b)变量名在首次赋值的时候会被创建
c)变量名在引用之前必须先赋值
d)知道执行隐式赋值的操作(模块导入,函数和类的定义等等)

Ⅱ.基本赋值方式

基本赋值方式我们已经见得很多了,就是传统的赋值方式比如a=2啊巴拉巴拉这些,很简单.但是要注意之前说的,即使变量被赋值,也能够指向其他的对象.所以说非常灵活.这个就不举例子了.

Ⅲ.序列赋值

在python中,序列是能够相互混合赋值的,只要两边都是序列就行!,但是两边的长度(就是元素的个数)要相同,不相同的话会报错.
很简单,举个例子一看就会,看例子就行.
这里写图片描述
上面的两边都是同一类型的,元组对元组,列表对列表.事实上,前面已经说了,序列赋值能够混合.通畅情况下,python会从左到右把右侧序列中的元素赋值给左侧序列中的变量。
这里写图片描述
这部分其实很简单,也很重要,后面很多简化的赋值要用到他们.

Ⅳ.扩展序列解包(python3)

之前说序列赋值的时候,就有说明,元素的数量一定要相等,不然会报错.但是有时候只要用一些变量就能够接收右边对象中的值,那这时候就要用到扩展的序列解包.名词很装逼,其实一点也不难.扩展的序列解包中你一定能够看到一个*号,那是干嘛的呢?
不装逼,直接看例子就懂了.
这里写图片描述
这里写图片描述

Ⅴ.多目标赋值

多目标赋值听上去很装,其实就是传统的连续赋值,多个等号的那种.
这里写图片描述
事实上,就是只有一个对象,全部变量都指向内存中的同一个对象.所以,要是对于某些原地修改的对象.一个改变,那么其他的变量也会受到影响.所以,有时候需要copy或者是独立设置.

Ⅵ.增强赋值语句

也是听上去很厉害,其实就是c语言语法的一个模仿(但是真的挺好用的).适用于任何的支持隐式二元表达式的类型.
这里写图片描述
是不是很眼熟,哈哈
很简答,这个挺好用的,例子就不举了…(例子表示很可怜)

三.输入和打印

Ⅰ.打印

先讲打印是因为打印是用的频率很高的操作.
python3中的print函数.
格式为:print([object,……][,seq=’ ’][,end=’\n’][,file=sys.stdout])

    1.sep是在每个对象的文本之间插入的一个字符串.默认传递单个空格;要是不想输出对象之间有空格,可以传递一个空字符串.
    2.end是放在打印文本末尾的一个字符串.默认传递换行符.
    3.file指定了文本将要发送到的文件,标准流或者其他类似于文件的对象.默认是sys.stdout.

看一个例子
这里写图片描述
Ⅱ.输入

四.判断

提起判断和循环,首要就要提到比较.所以首先说一下比较和一些逻辑有关的关键字.
大小比较:

x>y;x<y;x>=y;x<=y  #和C或者C++一样

相等关系:

x==y;x!=y;  #和C或者C++一样
x is y      #完全一样的对象

逻辑词:

x and y     #与运算,类比于C中的x&&y
x or y      #或运算,类比于C中的x||y
not x       #取反,类比于C中的!x

判断的一般形式是:

if test1:       #后面":"不能够掉因为要跟复合语句了,或者硬记下来
    <statements1>   #要缩进.要是有多句话,保持一致的缩进
elif test2:     #类比else if
    <statements2>
else:
    <statements3>

一个例子:
要是年龄大于20就买房,否则不买房
这里写图片描述
结果是yes
其实就到这里就够了,真的真的没有什么好多讲的….注意格式,不要漏掉冒号”:”注意要缩进.就行了.

五.循环

基本的循环有两种:while(通用循环)和for(遍历序列对象内的元素).

Ⅰ.while

模板:

常用:
while(test):            //不要忘记:和缩进
    <statements1>
else:               //else是可选的
    <statements2>

通用:
while(test1):
    <statements1>
    if <test2>:
        break
    if<test3>:
        continue
else:
    <statement2>
注意:想要else这个语句有用的话,前面的break就不能够生效。它能够退出当前的一整个循环结构,包括else

基本例子:
这里写图片描述
这里写图片描述
break,continue,pass和循环else
1.break(跳出最近所在的循环,跳过整个循环语句)
2.continue:跳到最近所在循环的开头处
3.pass :什么也不做,只是占空位语句
4.else :正常离开循环的时候就执行(前面没有break语句)
依然是和C很相似的结构.就不多说了.实践中用就知道了.

Ⅱ.for

用它来遍历序列对象内的元素,并且对每个元素运行一个代码块
语法模板:

for <target> in <object>:
    <statement>
else:
    <statement>

当python运行for循环时,会逐个将序列对象中的元素赋给目标然后为每个元素执行循环主体。

基本例子
列表
这里写图片描述
这里写图片描述
元组和字符串
这里写图片描述
for循环中的序列赋值
这里写图片描述
遍历字典
这里写图片描述
这里写图片描述

以上就是基本了,还有很多比如嵌套的if和嵌套的for都没有讲,是因为这些和语言无关而和逻辑有关.好的逻辑自然知道怎么去嵌套或者其他的.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python从入门到放弃(三):基本语句和语法 的相关文章

  • scipy 将一个稀疏矩阵的所有行附加到另一个稀疏矩阵

    我有一个 numpy 矩阵 想在其中附加另一个矩阵 这两个矩阵的形状为 m1 shape 2777 5902 m2 shape 695 5902 我想将 m2 附加到 m1 以便新矩阵的形状为 m new shape 3472 5902 当
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • Sublime Text 插件开发中的全局 Python 包

    一 总结 我不知道 Sublime Text 插件开发人员如何使用 Sublime Text 查找全局 Python 包 而不是 Sublime Text 目录的 Python 包 Sublime Text使用自己的Python环境 而不是
  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • 用缺失的日期填充其他列 Nan Pandas DataFrame

    我实际上是从几个 Excel 文件中提取数据来监控我的每日卡路里摄入量 我设法使用列表理解来生成日期 我尝试使用合并或连接 但它不起作用 ValueError 您正在尝试合并对象和 float64 列 date list 2021 05 2
  • 保留完整姓氏,在 pandas 列中获取名字的首字母(如果有的话,还有中间名)

    我有一个 pandas 数据框 其中有一列表示几位网球运动员的姓氏和姓名 如下所示 Player 0 Roddick Andy 1 Federer Roger 2 Tsonga Jo Wilfred 我想保留完整的姓氏并获取姓名的首字母和中
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • 在没有模型的情况下将自定义页面添加到 django admin

    我正在尝试在没有模型关联的情况下向管理员添加自定义页面 这就是我迄今为止所取得的成就 class MyCustomAdmin AdminSite def get urls self from django conf urls import
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • 没有名为 StringIO 的模块

    我有Python 3 6 我想从另一个名为 run py 的 python 文件执行名为 operation py 的 python 文件 In operation py I do from cStringIO import StringI
  • 如何使用文本相似性删除 pandas 数据框中相似(不重复)的行?

    我有数千个数据 这些数据可能相似也可能不相似 使用 python 的默认函数 drop duplicates 并没有真正的帮助 因为它们只检测相似的数据 例如 如果我的数据包含类似以下内容怎么办 嗨 早上好 嗨 早上好 Python 不会将
  • 在 matplotlib 中的极坐标图上移动径向刻度标签

    From matplotlib 示例 http matplotlib org examples pylab examples polar demo html import numpy as np import seaborn as sbs
  • Tensorflow 与 Keras 的兼容性

    我正在使用 Python 3 6 和 Tensorflow 2 0 并且有一些 Keras 代码 import keras from keras models import Sequential from keras layers impo
  • Anaconda 无法导入 ssl 但 Python 可以

    Anaconda 3 Jupyter笔记本无法导入ssl 但使用Atom终端导入ssl没有问题 我尝试在 Jupyter 笔记本中导入 ssl 但出现以下错误 C ProgramData Anaconda3 lib ssl py in
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • Python SSL X509:KEY_VALUES_MISMATCH

    Python HTTPS server from http server import HTTPServer SimpleHTTPRequestHandler import ssl https stackoverflow com a 408
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • 经济学几个小点-20220719

    1 价值和使用价值 高跟鞋对需要的女人有用 对火车司机无用 使用价值 价值 一般劳动 时间等价 使用价值 对某某有用 生产者为了获得交换价值 消费者为了获得使用价值 2 供给和需求 沉没成本是一种历史成本 对当前决策而言是不可控成本 不会对
  • MSQL系列(一) Mysql实战-索引结构 二叉树/平衡二叉树/红黑树/BTree/B+Tree

    Mysql实战 索引结构 二叉树 平衡二叉树 红黑树 BTree B Tree 我们在项目中都会使用索引 所以我们要了解索引的存储结构 今天我们就着重讲解下Mysql的索引结构存储模型 并且看下 二叉树 平衡二叉树 红黑树 BTree及B
  • struc2vec算法解析

    转载自链接
  • Humata的bug记录【unsolved】

    项目场景 使用Humata 在上传PDF文档步骤出现问题 问题描述 使用UPLOAD按钮进行文件提交会报错 使用拖拽则不会出现该问题 原因分析 解决方案
  • js作用域

    一 js没有块级作用域 在c java等语言中花括号里的代码都有自己的作用域 而js花括号没有块级作用域 经常会导致一些困惑 不明所以 例如 console info color if true var color blue console
  • 数据源——信用评分的前世今生【附FICO分介绍】

    信用评分这把 看不见的标尺 如今已经逐渐渗透到我们生活的方方面面 大到贷款买房买车 小到租用一个共享充电宝 都受到它的影响 那么问题来了 这个重要的数字是从哪里冒出来的呢 这就要从信用评分的起源讲起 什么是信用评分 信用评分 Credit
  • Oracle 11g+PLSQL Developer安装及环境配置

    1 安装包 OracleXE112 Win64 zip 数据库服务管理平台 plsql 11 0 4 安装包 语言包 注册机 rar 第三方客户端 链接 https pan baidu com s 1AKTrd6Qu9 qk59N G6AV
  • cookie,token,ajax异步请求,知识点

    当get 或post 访问接口时 如果需要传入cookie 可以直接传入jar格式的cookie 也可以传入字典格式cookie cookie cookie是存储与访问者计算机的变量 由浏览器负责存储在电脑本地 一般加密存储 但是由于存储在
  • 软件审查工具

    代码审查工具 https baijiahao baidu com s id 1693720741656939513 wfr spider for pc Eclipse Code Review 代码审查 工具介绍 https www itey
  • 快速成长的秘诀|自我成长的方法有哪些?

    快速成长总共三篇 分别是 完成自我升级 自我成长的方法 学会自我培养或培养他人 在成长第一篇 完成自我升级 发布后 有很多同学做了仔细阅读 而且其中一位同学给了我非常好的反馈补充 他的原话 我看完了 给我一个最大的感受是 您把一整套认知思维
  • Vue动画的使用

    动画的作用 提高用户的体验 帮助用户更好的理解页面中的功能 使用过渡类名实现动画 动画进入 v enter 动画进入之前的初始状态 v enter to 动画进入之后的结束状态 v enter active 动画进入的时间段 PS 第一 第
  • KVM实战入门之Libvirt

    环境说明 本实验在VMware的centos6 7 x64进行的 1 VMware配置 如果不能勾上则不能继续进行 解决办法 重新创建VMware虚拟机 到这一步 自定义 能勾上了 创建虚拟机后即可下一步 2 查看Linux环境 查看是否支
  • HC32L110国产超低功耗华大MCU芯片介绍

    华大HC32L110 系列32 位 ARM Cortex M0 微控制器 HC32L110 系列是一款旨在延长便携式测量系统的电池使用寿命的超低功耗 Low Pin Count 宽电压工作范围的 MCU 集成 12 位 1M sps 高精度
  • VirtualBox+Windbg 进行双机调试的方法

    以前见他们调试驱动程序之类的都是使用的VMWare 我没怎么用这软件 感觉这软件有点臃肿 后台服务挂得太多了 感觉不爽 于是就没搞它 加上电脑上很早就装有Oracle的Virtual Box 于是就看了下 其实Virtual Box也有支持
  • 使用msf监听模块接收反弹shell

    Metasploit Framework MSF 提供了多种方式来监听反弹 shell 使用 multi handler 模块 这是 MSF 中最常用的模块之一 用于监听反弹 shell 它支持多个协议和 payload 可以根据需要进行配
  • SQL基础笔记

    Codecademy中Learn SQL SQL Table Transformaton和SQL Analyzing Business Metrics三门课程的笔记 以及补充的附加笔记 Codecademy的课程以SQLite编写 笔记中改
  • nginx反向代理后获取真实请求ip

    本来接口运行的好好的 后面为了规范接口 我在nginx加了如下代码 location v1 api proxy pass https xxx xxx xxx 8081 v1 api 后面重新部署后发现通过HttpServletRequest
  • python下载安装使用_下载、安装与使用 pysot

    本篇文章简要介绍了如何在windows环境下 使用anaconda进行pysot运行环境的部署以及使用 pysot是商汤科技推出的一个针对单目标跟踪 Single Object Tracking 的 研究平台 里面包含了他们团队的一些算法实
  • 23种设计模式之策略模式

    文章目录 概览 策略模式的优缺点 策略模式的应用场景 策略模式的结构与实现 模式的结构 模式的实现 策略模式的扩展 总结 概览 策略模式定义了一系列算法 并将每个算法封装起来 使他们可以相互替换 且算法的变化不会影响到使用算法的客户 需要设
  • Python从入门到放弃(三):基本语句和语法

    一 一些改变 1 Python增加了什么 相比起C 或者其他一些语言 Python增加了一个冒号 所有的python复合语句 都是首行由冒号来提醒 这个一定不能够掉了 且接下来是以缩进的形式来书写 C 或者一些语言是大括号括起来的 后面会看