【全网惟一面向软件测试人员的Python基础教程】- 你知道Python代码是怎样运行的吗?

news2024/11/27 18:30:10

全网惟一面向软件测试人员的Python基础教程

起点:《python软件测试实战宝典》介绍
第一章 为什么软件测试人员要学习Python
第二章 学Python之前要搞懂的道理
第三章 你知道Python代码是怎样运行的吗?


文章目录

  • 全网惟一面向软件测试人员的Python基础教程
  • 1. Python代码运行的顺序是怎样的?
  • 2. 变量的输入与输出是什么?
  • 总结


1. Python代码运行的顺序是怎样的?

   Python的代码执行大部分的时候是由上至下,由左至右,从括号来到括号外,并且是整个文件运行,比如代码:

# 执行顺序
print('先上面')
print('先左边');print("后右边")
print('后下面')
print(round(3.9912,2)) # 先4舍5入,再进行输出

运行结果:

先上面
先左边
后右边
后下面
3.99

注意以上说的顺序只能说大部分的时候是正确的,也就是你在学python基础的时候是正确的。

   如果代码文件里面有函数或者类的定义(没有调用), 则先跳过(不执行),比如代码:

print('先上面')
def fun1():
    print('hello 1')
class cls1():
    pass

print('先上面')
print('先左边');print("后右边")
print('后下面')
print(round(3.9912,2)) # 先4舍5入,再进行输出

运行结果:

先上面
先上面
先左边
后右边
后下面
3.99

  我们把函数进行调用,把代码修改为以下:

# 执行顺序
print('先上面')
# 调用函数
fun1()
def fun1():
    print('hello 1')
class cls1():
    pass
print('先左边');print("后右边")
print('后下面')

运行的结果:

Traceback (most recent call last):
  File "D:\DLAI\qwenAILearn\untitled10\集合1.py", line 15, in <module>
    fun1()
NameError: name 'fun1' is not defined
先上面

  运行后得到一个错误:Name Error:name ‘fun1’ is not defined。这个错误的原因就是,由于没有理解python代码运行的顺序造成的。由上至下,fun1()调用时,代码上面并没有定义,所以才会有这个错误。

准确的说法:如果有定义函数,但是没有调用的时候其实不是没有执行,而是执行的时候Python会将函数名放入到内存地址中,供调用的的时候引用。以上说法只是为了好理解。


2. 变量的输入与输出是什么?

   假设我们某个代码里面只有以下内容:

a = 343434 + 990090

点击Pycharm运行,如图所示,会发现下方区域没有任何代码,那这是为什么呢
在这里插入图片描述
答:因为没有输出

  a = 343434 + 990090 这句话什么意思呢?

  343434 + 990090这是我们的计算,计算出来的结果存储在a这个名称中,a在python中称之为变量。

  a为什么是变量,因为a 不仅可以存储343434 + 990090的结果,也可以存储 1 + 1的结果,只需要把代码变为:

# 计算加法去处的结果
a = 343434 + 990090
a = 1 + 1

  a的值,随着我们的使用呢,是可能随时发生着的变化的,所以a称之为变量!而且在python中一旦重命,那么a的值会立刻发生变化!

  变量存储的是什么,是右边计算的值,右边的整个过程我们可以称之为‘输入’,即参与计算的过程相对于变量来说,都是‘输入’的数据,输入的过程就是计算的过程。

  虽然这个过程在计算机中进行了计算,但我们肉眼是看不到的,这时我们需要靠print(变量名称)来输出,即我们需要print(变量名称)来展示给我们变量的值,体现出343434 + 990090的计算的过程,这个print()我们可以称之为输出。

# 计算加法去处的结果
a = 343434 + 990090
print(a)

运行结果:

1333524

  我们把代码稍做修改,如下:

# 计算加法去处的结果
print(343434 + 990090)

  这个时候我们没有变量a了,那么此时343434 + 990090相对于print()函数来说呢,343434 + 990090为一个输入,print()把343434 + 990090计算的值直接输出(343434 + 990090计算的值,会在计算机内存中临时存储,但不可见),也就是说相对于print()中的括号里的内容来说,任何内容都是输入,print()负责的就是将()中计算的内容输出(函数的传参都是输入,而函数的返回值可以称之为输出。如果调用函数,则函数的计算过程仍会执行,赋给一个变量或者另一个函数时,则被调用函数此时又变为输入)。

  实际编程实践中,我们会有大量的通过a = 输入或者print(输入)的方式来进行计算,因此理解计算过程中的输入与输出,是比较重要的一个环节

  另外a这个变量名称也不是随便能取的!!!

  变量的名称取名需要满足python编程语言的规则。规则是,只能英文、数字、下划线的组合,且不能以数字开头,同时不能跟语法关键字(后面会一一讲到)重名。

  所以取名是一个较难的事,靠谱的方法是用英文,比如name = “那美那美”,而不是mz = “那美那美”(mz是拼音),不知道英文的时候,请用翻译软件。原因嘛,英文虽然很烂,还有翻译软件,如果是拼音,鬼才晓得你的意思,毕竟代码是可能会给其它人看、用的


总结

  1. 代码执行的顺序是怎样的
  2. 输入数据与输出数据的关系是怎样的
  3. 什么是变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何写好科研论文:Introduction(2)

导读 本系列[1]将切片介绍如何写好科研论文&#xff0c;包含了&#xff1a;摘要&#xff0c;背景介绍&#xff0c;方法&#xff0c;结果&#xff0c;讨论等。 由于翻译能力有限&#xff0c;强力推荐有需要的伙伴&#xff0c;直接在文末找到参考链接&#xff0c;阅读原文&#x…

外汇天眼:Swissquote获得CySEC许可证、BUX收购Ninety Nine

新的一周开始了&#xff0c;那么在过去的一周里备受大家关注的外汇行业新闻都有哪些呢&#xff1f;天眼君现在带大家回顾&#xff0c;比如Swissquote获得CySEC许可证、BUX收购西班牙新交易商Ninety Nine的零售经纪部门、Saxo Bank以“时机不合适”为理由终止与SPAC IPO合作。具…

12.3、后渗透测试--持久化后门

攻击主机&#xff1a; Kali 192.168.11.106靶机&#xff1a;windows server 2008 r2192.168.11.134零、为何要创建后门 当成功获取目标系统的访问权限后&#xff0c;需要寻找方法来恢复与目标主机的连接&#xff0c;而无需再进入目标系统。如果目标用户破坏了该连接&#xff0c…

Metal每日分享,虚假颜色混合滤镜效果

本案例的目的是理解如何用Metal实现虚假颜色效果滤镜&#xff0c;使用图像的亮度在两种用户指定的颜色之间进行混合&#xff1b; Demo HarbethDemo地址 实操代码 // 混合颜色 let filter C7FalseColor.init(fristColor: .blue, secondColor: .green)// 方案1: ImageView.im…

BMVC2022 | HR-VQVAE:用于图像重建和生成的基于Hierarchical Residual Learning的VQVAE

原文标题&#xff1a;Hierarchical Residual Learning Based Vector Quantized Variational Autoencoder for Image Reconstruction and Generation 链接&#xff1a;https://bmvc2022.mpi-inf.mpg.de/0636_poster.pdf paper&#xff1a;https://arxiv.org/abs/2208.04554 一…

新业务势头强劲,晨光股份转型之路走得如何?

近期&#xff0c;据网传的一份文件显示&#xff0c;上海晨光文具股份有限公司&#xff08;以下简称“晨光文具”、“晨光股份”、“晨光”“公司”&#xff09;将于11月29日起&#xff0c;暂停线上线下店面等渠道的A4纸销售。晨光股份&#xff08;603899.SH&#xff09;针对此份…

PreScan快速入门到精通第四十一讲图像分割传感器

图像分割传感器(ISS)是一种生成语义分割图像的工具。它在诸如分类、(深度)学习、行人识别、避免碰撞等应用领域非常有用。ISS通常与相机传感器结合使用,以获得被分割的图像。 摄像机传感器 ISS语义类型颜色 ISS语义目标颜…

Vue3+Vite4+Naive-UI 项目自动导入API和组件

一、Vue3常用API导入 安装依赖 pnpm i -D unplugin-auto-import进行Vite配置 文件名&#xff1a;vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import AutoImport from unplugin-auto-import/vite// https://vitejs.dev/config/ ex…

HDOCK 蛋白蛋白对接软件使用;LZerD网页在线对接

参考&#xff1a; http://hdock.phys.hust.edu.cn/ 注&#xff1a;本文章是取6BOY这蛋白&#xff0c;下载用pymol划分成DDB1-CRBN部分蛋白与BRD4部分蛋白&#xff0c;用这两个蛋白进行软件的对接测试 https://www.rcsb.org/structure/6BOY 一、HDOCK 蛋白蛋白对接软件使用 …

@Enumerated的使用

前言 今天做测试&#xff0c;发现还没有试过实体类中关于枚举项的使用&#xff0c;于是就做了个测试&#xff0c;发现了点问题&#xff08;发现的问题主要是针对我使用的ORM框架是Ebean&#xff0c;它自带了一个比Enumerated更好用的注解和方式&#xff09;。 不多说&#xf…

翻硬币(蓝桥杯C/C++B组真题详解)

目录 题目描述&#xff1a;1208. 翻硬币 - AcWing题库 题目思路&#xff1a; 代码详解&#xff1a; 题目描述&#xff1a;1208. 翻硬币 - AcWing题库 题目思路&#xff1a; 这题我们可以用模拟直接模拟操作 也可以直接推出规律 这里就讲解推出的规律 因为每次必须选择两个…

[附源码]计算机毕业设计二次元信息分享平台的设计及实现Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

[操作系统笔记]请求分页管理方式

内容系听课复习所做笔记&#xff0c;图例多来自课程截图 操作系统需要提供两大功能&#xff1a; 请求调页&#xff1a;缺失页面调入内存页面置换&#xff1a;暂时不用的换出外存 页表机制 原先的页式管理使用的页表并不能满足新的需求&#xff0c;因此需要为页表增加新的页表…

《垃圾回收算法手册 自动内存管理的艺术》——运行时接口(笔记)

文章目录十一、运行时接口11.1 对象分配接口11.1.1 分配过程的加速11.1.2 清零如何清零何时清零11.2 指针查找11.2.1 保守式指针查找11.2.2 使用带标签值进行精确指针查找11.2.3 对象中的精确指针查找11.2.4 全局根中的精确指针查找11.2.5 栈与寄存器中的精确指针查找11.2.6 代…

DI Blackfin DSP处理器-BF533的开发详解47:图像处理专题-Resize (图像缩放处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像缩放处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

JUnit 测试框架

JUnit注解test 注解BeforeEach 注解BeforeAll AfterEachAfterAll断言assertEqualsassertNotEqualsassertTrue用例执行顺序测试套件指定类&#xff0c;添加到套件中并执行一次添加一个包的类参数化单参数多参数借助文件动态参数注解 test 注解 通过对方法加上 test 注解&#…

[附源码]计算机毕业设计二手书店设计论文Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

DocArray 0.20.0 发布!新增 Milvus 后端支持,更好地嵌套数据搜索,新增 RGB-D 格式的 3D 模型表示

DocArray 是一个用于处理、传输和存储多模态数据的 Python 工具包。DocArray 提供便捷的多模态数据处理功能&#xff0c;具备基于 Protobuf 提供高性能的网络传输性能&#xff0c;同时也为多种向量存储方案提供统一的 API 接口。 GitHub&#xff1a;github.com/docarray/docar…

外包公司面试门槛高吗?软件测试员进外包公司容易吗?

虽然很多测试人员都抵制外包&#xff0c;但实际情况则是依旧有大量软件测试员&#xff0c;选择加入到外包这个圈子。外包公司面试门槛高吗?外包公司容易进吗?本篇来解答一下这个问题。 外包公司面试门槛高吗&#xff1f; 外包的面试门槛&#xff0c;相对大厂要低很多。尤其…

二、Docker 阿里云镜像加速

1、为什么需要增加镜像加速 咱们先看运行 hello word 都干了哪些事情 "Unable to find image hello-world:latest locally" 是说本地没有hello-world 这个images(镜像) "latest: Pulling from library/hello-world" 本地没有那就得去拉取 这段是拉取 i…