python学习笔记第一天

2023-11-17

一、Python的基本语法元素

Python程序从默认的第一条语句开始,按顺序依次执行各条语句。代码块可视为复合语句。

Python使用严格的缩进(空格)来表示代码块,连续的多条具有相同缩进量的语句为一个代码块。

注释用于为程序添加说明性的文字,帮助程序员阅读和理解代码。

Python注释分单行注释和多行注释。

单行注释符号:#

多行注释是用3个英文的单引号“'''”或3个双引号“"""”作为注释的开始和结束符号

语句续行符号:“\”

作用:可将一条语句写在多行之中。

注意:在使用括号(包括 “()” “[]”和 “{}”等)时,括号中的内容可分多行书写,括号中的注释、空白和换行符都会被忽略

语句分隔符号:“;

作用:从而将多条语句写在一行”

保留字是程序设计语言中保留的单词,以便版本升级更新之后使用。

关键字是程序设计语言中作为命令或常量等的单词。

Python的保留字和关键字如下。

False          await          else          import          pass

None         break         except         in         raise

True         class         finally is         return

and         continue         or         lambda         try

as         def        from         nonlocal         while

assert         del         global         not         with

async         elif         if         or         yield

【注意】:Python区分标识符的大小写,保留字和关键字必须严格区分大小写。

二、输入函数和输出函数

输入函数:input()

语法:变量 = input('提示字符串')

注意:

1.如果需要输入整数或小数,则应使用int()或float()函数转换数据类型

2.eval()函数可返回字符串的内容,还原输入数据的原本类型,即相当于去掉字符串的引号

   变量 =eval(input('提示字符串'))

基本输出:print()

语法:print([obj1,…][,sep=' '][,end='\n'][,file=sys.stdout])

注意:

1.在输出多个数据时,默认使用空格作为输出分隔符。

2.print()函数的默认输出分隔符为空格,可用sep参数指定分隔符号,

   语法:print(变量1,变量2,sep='分隔符')

3.print()函数默认以回车换行符号作为输出结尾符号,可以用end参数指定输出结尾符号

  语法:print(变量1,变量2,end='结束符')

4.print()函数默认输出到标准输出流(即sys.stdout),可用file参数指定将数据输出到文件

三、变量与对象

变量的命名规则:

1.首字符必须是下划线、英文字母或其他Unicode字符,可包含下划线、英文字母、数字或其他Unicode字符。

2.变量名区分大小写。

3.禁止使用Python保留字或关键字

4.变量必须先定义后使用

赋值语句:=

作用:用于将数据赋值给变量。

序列赋值:一次性为多个变量赋值

如:(x,y)='ab'

注意:序列赋值时,可以在变量名之前使用“*”,不带星号的变量仅匹配一个值,剩余的值作为列表赋值给带星号的变量

多目标赋值:指用连续的多个等号将同一个数据赋值给多个变量

如:a=b=c=10

变量在第一次赋值时被创建,再次出现时可以直接使用。

变量没有数据类型的概念。数据类型属于对象,它决定了对象在内存中的存储方式。

变量引用对象。在表达式中使用变量时,变量立即被其引用的对象替代。所以变量在使用之前必须为其赋值。

变量的共享引用:指多个变量引用了同一个对象

当变量共享引用的对象是列表、字典和类等的实例对象时,如果修改了被引用对象的值,那么所有引用该对象的变量获得的将是改变之后的对象值

可以用is操作符来判断两个变量是否引用了同一个对象

局部变量与全局变量

全局变量

是指定义函数外的变量,不属于任何一个函数,这个变量可以在任何函数中使用.

局部变量

定义在某个函数中,该变量只在该函数中有效,除该函数外,都不能使用这个变量

当全局变量和局部变量同名时,在函数内使用变量,优先使用局部变量

局部变量优先级高于全局变量

如果想修改全局变量,需要声明

global [变量名]

在python中万物皆对象,变量也是一个对象,通过id()函数可以引用对象地址

引用就是数据在内存中存储时的内存编号,可变对象建立以后地址是固定的

函数也是一种对象,当函数不带括号时指代的就是该函数对象的内存地址

四、函数(多用,无论函数功能多单一多简单都使用函数来写)

1.函数的作用:

​ 用来将一段功能代码封装到一起,并起个名.

​ 在使用时,只需要使用代码的名字即可

2.函数的定义和调用(重点)

函数的定义格式:

​ def 函数名(参数列表...):

       '''

        函数说明文档

       '''

          函数功能代码...

函数使用(调用):

​         函数名(值列表...)

3. 函数调用过程(重点)

a. 函数在定义时,函数体中的代码是不执行的

b. 当产生函数调用时,程序才会跳转到函数体中执行函数的代码

c. 函数体中的代码执行完成后,回到调用处 (重点理解)

4. 函数文档注释(了解)

文档注释: DocString

写在程序文件开头的位置时,是程序文件的DocString,对整个程序进行说明

写在函数开头位置时,是对函数功能的说明, 函数的 DocString

5. 函数的实参和形参

实参:实际参数,是在函数调用时,括号中出现的数据称为实参

形参:形式参数,是在函数被调用时,接收函数调用传递过来的实参数据

实参和形参 在传递时,要一一对应.

形参中可以设置参数默认值

使用默认值 参数时,需要注意:

在默认值 参数的右侧,不能再出现没有默认值 参数

没有默认值的参数要放在前面

6. 函数的参数传递过程

参数在传递时,实参要和形参一一对应,不能多,也不能少,

实参会按顺序一一赋值给形参

不定长位置参数

*args保存具体数值,将所有参数作为元组元素传递

**kwargs保存键值对(变量:值),将所有参数作为字典元素传递

不指定具体的传递参数的个数,

7. 函数返回值(难点,重点)

return 返回一个函数的结果

格式:

​ return 数据

一个函数,无论在哪遇到return,那么这个函数都会直接结束执行,回到调用处

return 后面可以没有数据

函数也可以没有return ,函数默认返回 None

8. 函数包含多个return语句

一个函数中可以存在多个Return

但是,只能有一个语句有效

在执行顺序上,第一个遇到的Return 有效

9.函数返回多个值

解释器在执行代码时,发现return 后成如果有多个值 ,那么就会将这多个值 ,直接组包成一个元组后将这个元组返回。

10.函数的嵌套调用

当函数需要使用另一个函数的功能时可以嵌套调用,但是嵌套调用一定要有终点函数,不能套娃

递归调用是嵌套调用的特殊形式,递归调用是嵌套调用本函数,递归调用一定要有结束标志

11.当程序达成某个特定条件时需要终止执行

使用exit()函数,括号内可以像input()那样添加文字说明

12.匿名函数

        lambda [参数]:[返回值]

        lambda 定义时的注意事项

        1. lambda 默认返回表达计算结果,不需要return ,如果加了reutrn 反而报错

        func = lambda x, y: return x + y

        2. 不能使用 循环

        func = lambda x,y: for i in range(x, y): print(i)

        func = lambda x,y: i = x while i < y: print(i) i +=1

        3. 不能使用if的正常格式

        func = lambda n: if n % 2 == 0: print('偶数')

        4. 但是可以使用 if实现的三目运算符

        func = lambda m, n: m if m > n else n

13.高阶函数(一般用于文件操作和组合数据类型的处理)

map 函数

作用:是对参数列表中的元素做一个映射

参数是一个函数和一个列表

对列表的每一项做某一些操作

# 这个函数是为了给map的参数一进行传参

# 因为map函数需要使用这个函数来计算每一个元素的映射值 ,

# 所以该函数有且必须只能有一个参数

高阶函数-reduce

注意:reduce 不能直接使用,需要导入一个模块 functools

reduce 作用是根据传入的参数一对参数二中的数据进行累计操作

如对列表元素进行拼接

filter 过滤函数

过滤出符合条件的数据

默认sort方法是不能对字典进行比较排序的

按id的升序排序

my_list.sort(key=lambda d: d['id'])

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

python学习笔记第一天 的相关文章

  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 当我有自定义身份验证模型时,如何登录 Django Rest 可浏览 API?

    我有一个自定义用户模型 如下所示account models py from django contrib auth modles import AbstractUser from django db models signals impo
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 反编译Python 3.9.2的PYC文件[重复]

    这个问题在这里已经有答案了 目前 我有一个 3 9 2 版本的 python 的 PYC 文件 P S 这适用于所有 3 9 及更高版本 我正在尝试反编译 PYC 文件 但它显示错误 因为 uncompyle6 或者更确切地说 新版本 de
  • Mypy 无法从文字列表推断项目的类型

    我有一个变量x和一个文字列表 例如 0 1 2 我想转换x这些文字之一 如果x在列表中 我将其退回 否则我返回一个后备值 from typing import Literal Set Foo Literal 0 1 2 foos Set F
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • 在 python pandas 中,如何保存“网格图”?

    我对 pandas 绘图工具很陌生 在文档中 以下命令非常方便 myplot rts ret hist bins 50 by rts primary mic 然而 当我尝试从图中获取图形参考并保存它时 问题就出现了 myfigure myp
  • 类型错误:需要二进制或 unicode 字符串,得到 618.0

    I ve been trying to implement this ML Linear Model into my dataset https www tensorflow org tutorials estimator linear L
  • 如何使用scrapy检查网站是否支持http、htts和www前缀

    我正在使用 scrapy 来检查某些网站是否工作正常 当我使用http example com https example com or http www example com 当我创建 scrapy 请求时 它工作正常 例如 在我的pa
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • 根据其他单元格值更改多个单元格值

    我想更改包含的单元格moving to movingToOpenor movingToClose基于下一个单元格中给出的状态 有时循环会被中断并且不会从open to close or close to open 这是我当前的数据框 Dat
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • 使用 Python 将连续日期分组在一起

    Given dates datetime 2014 10 11 datetime 2014 10 1 datetime 2014 10 2 datetime 2014 10 3 datetime 2014 10 5 datetime 201
  • 在Raspberry pi上升级skimage版本

    我已经使用 Raspberry Pi 2 上的 synaptic 包管理器安装了 python 包 然而 skimage 模块版本 0 6 是 synaptic 中最新的可用版本 有人可以指导我如何将其升级到0 11 因为旧版本中缺少某些功
  • 使用另一个数据帧在数据帧中创建子列

    我对 python 和 pandas 很陌生 在这里 我有一个以下数据框 did features offset word JAPE feature manual feature 0 200 0 aa 200 200 0 200 11 bf
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s

随机推荐

  • kafka 安装使用及cpp kafka例子

    1 下载kafka 安装包 wget http mirrors tuna tsinghua edu cn apache kafka 2 3 0 kafka 2 12 2 3 0 tgz tar xvzf kafka 2 12 2 3 0 t
  • Codeforces Round 896 (Div. 2) A~D

    A Make It Zero 思路 长度为偶数 从1到n操作两次 长度为奇数 先从1到n操作一次 然后从1到n 1做两次 最后n 1到n做一次 AC代码 include
  • 弱监督目标检测之二 连续优化多实例学习

    上一次的博客提到了我们实验室发表在CVPR2018以及IEEE TPAMI上的工作MELM 1 这一次的博客进一步介绍基于MELM的最新的工作C MIL 也是实验室今年被CVPR2019接收的4篇论文之一 C MIL Continuatio
  • 读书笔记---《如何高效学习》

    学习是需要方法的 特别是在当今信息爆炸的时代 如何高效的处理信息 有机的整合知识 已经成为学习的关键 如果只用一种方式了解某样事物 你就不会真正了解她 了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系 通过联系 你可将想法内化于
  • 用python做爬虫,怎么入门学什么?

    用python做爬虫 怎么入门学什么 前些日子 写了一篇Python能做什么 当然高端的算法ai领域应用非常广泛 但是对于想学习Python实现找工作或者自己网上接单兼职的小伙伴来说 还是做好爬虫更适合 那么爬虫究竟是什么呢 爬虫可以理解为
  • 【图像识别】图像特征、特征检测、特征提取

    目录 1 图像特征 2 特征检测与特征提取 2 1 特征检测算法 2 2 1Moravec 2 1 2 Harris 2 1 3 FAST 2 1 4 SIFT 2 1 5 SURF 2 1 6 BRIRF 2 1 7 ORB 2 2 特征
  • [Qt] [QDir] 创建文件夹和删除文件夹

    1 创建文件夹 mkdir和mkpath都可以创建文件夹 QDir temp bool result 创建名为test的文件夹 mkdir 若csdn文件夹不存在 则test文件夹创建失败 result temp mkdir d csdn
  • 回溯--深度优先搜索(图的M着色问题 poj1129)

    回溯 图的m着色问题 题目描述 给定无向连通图G V E 和m种不同的颜色 用这些颜色为图G的各顶点着色 每个顶点着一种颜色 是否有一种着色法使G中相邻的两个顶点有不同的颜色 这个问题是图的m可着色判定问题 若一个图最少需要m种颜色才能使图
  • 使用QGraphicsItem绘制微信消息文本框

    微信消息框如下 使用QGraphicsItem绘制 怎么绘制呢 先不考虑头像 那文本框就是由一个菱形矩形加一个小箭头组成的 所以很简单就能画出来了 void PopoItem paint QPainter painter const QSt
  • 彻底解决Python(win)导包from import错误问题

    1 一句话 一句话 关键是os sys path这个目录 这个目录有 就from import没问题 没有 就报错 解决办法就是千方百计加进去即可 例如 import os print os sys path import dd from
  • 单链表中求倒数第几个节点

    问题描述 在单链表中求出倒数第K个节点 要求快速 方法一 利用链表的长度 不推荐 此方法必须事先知道链表的长度 在有长度的信息链表中 此方法可行 比如我之前的链表是这样的实现 参考博文 http blog csdn net dawn aft
  • 机器学习之梯度提升决策树(GBDT)

    1 GBDT算法简介 GBDT Gradient Boosting Decision Tree 是一种迭代的决策树算法 由多棵决策树组成 所有树的结论累加起来作为最终答案 我们根据其名字 Gradient Boosting Decision
  • SpringAOP来监控service层中每个方法的执行时间

    使用AOP来说 太方便了 并且特别适合这类场景 代码如下 这里是将要统计的信息写到log文件中 也可以设计成写入表中 package com ecsoft interceptor import org aspectj lang Procee
  • linux版本的发行版和内核版是什么意思

    linux内核版本的分类 Linux内核版本有两种 稳定版和开发版 Linux内核版本号由3组数字组成 第一个组数字 第二组数字 第三组数字 第一个组数字 目前发布的内核主版本 第二个组数字 偶数表示稳定版本 奇数表示开发中版本 第三个组数
  • Linux扫盲篇:CentOS、Ubuntu、Gentoo

    http www williamlong info info archives 197 html Linux最早由Linus Benedict Torvalds在1991年开始编写 在这之前 Richard Stallman创建了Free
  • DirectX在VS2017环境配置

    提示 此方法是解决DirectX9在windows环境下的配置问题 原文 https xygeng cn post 249 html 具体方法 1 问题 无法打开包括文件 stdlib h 解决办法 视图 gt 属性管理器 点击 user属
  • VMware Workstation 16 安装教程

    哈喽 大家好 今天一起学习的是VMware Workstation 16的安装 vm虚拟机是小编非常喜欢的生产力软件 小编之前发布的测试教程钧在vm上进行的实验 VMware Workstation是一款功能强大的桌面虚拟计算机软件 它能够
  • K8s微服务从0到1入门及命令实战

    写在前面 本文主要介绍k8s的核心概念 基础语法 常用命令和常用操作 Kubernetes介绍 Kubernetes是一种流行的开源容器编排和管理系统 它的目标是简化部署 扩展和管理容器化应用程序 Kubernetes最初由Google开发
  • 如何让女人满意?多个心眼爱女人

    别以为只有男人甜言蜜语地哄骗女人 女人有时也会设下甜蜜的陷阱让男人钻 如果有一天 你那个素来刁蛮的小女人突然变得乖巧柔顺 温温柔柔地抱着你的胳膊说 亲爱的 我今天心情特别好 给你一分钟的时间诉诉苦苦吧 平时我有哪些缺点令你敢怒不敢言的 尽管
  • python学习笔记第一天

    一 Python的基本语法元素 Python程序从默认的第一条语句开始 按顺序依次执行各条语句 代码块可视为复合语句 Python使用严格的缩进 空格 来表示代码块 连续的多条具有相同缩进量的语句为一个代码块 注释用于为程序添加说明性的文字