Python学习日记(二:函数和逻辑操作)

news/2024/7/27 11:03:14/文章来源:https://blog.csdn.net/LKHzzzzz/article/details/136498758

概述:

函数和逻辑操作在python中的地位是非常重要的,当然不只是在python中,几乎每一门编程语言都会用到这两样,所以打好基础对我们以后的学习非常重要,Python中的函数有很多都是已经封装好的,我们可以自己用语言去实现一个函数,这样不仅让我们可以有更好解决问题的能力,还可以对函数有更深的了解。

函数:

首先我们要知道python中的参数分为两种类型,分别是可变和不可变类型。

不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

不可变类型示例
#不可变对象
def ChangeInt(Number):Number = 100return
Number_ture = 90
ChangeInt(Number_ture)
print(Number_ture) #打印结果 90 因为Python本身并不存在一些值传递还是地址传递,所有的对象也并没有固定的类型,我们可以理解为是修改了一个复制过来的,并不能影响Number_true本身
可变类型示例
#可变对象
def ChangeList(MyList):MyList.append([1,2,3,4])returnMyList = [10,10,10]
ChangeList(MyList)
print(MyList) #打印结果[10, 10, 10, [1, 2, 3, 4]] 
默认参数

我们给函数的形参赋值,而这个值也可以被称为默认参数。示例如下

def printinfo(name, age = 35):print(name,age)returnprintinfo(50,"lucy")

值得一提的是如果形参有两个我们至少要填一个参数,否则会报错!

不定长参数

我认为python里面一个非常厉害的功能,不定长参数,他会把带星号的输入参数当作元组去处理,这样我们就可以实现输入一个或者多个参数,非常方便。但是好处往往也对应着坏处,API的封装同时对应的就是时间的消耗,所以说平时我们对于代码的要求还是需要考虑一些时间方面,养成好习惯。

#不定长参数 带星号的输入参数被当作元组处理
def functiom_indeterminacy(arg, *vartuple):print(arg)for var in vartuple:print (var)returnfunctiom_indeterminacy(10,20,30) #打印结果 10 20 30
functiom_indeterminacy(10,20,30,40,50,60) #打印结果 10 20 30 40 50 60
匿名函数

这是一个不用def就能实现的函数,主要依靠与lambda关键字。

#匿名函数sum = lambda number1,number2:number1 + number2print(sum(10,20)) #打印结果30
return

我们也可以返回一些值,这个比较容易理解,大家看看即可

#return
def functionSum(number1,number2):All = number1 + number2return AllAllResult = functionSum(20,20)
print(AllResult) #打印结果 40#值得一提的是在函数中定义的变量是局部变量,在函数外是不能被访问的,这一点在C语言中非常常见,相反函数定义的变量就是全局变量

逻辑操作:

逻辑运算符
#逻辑运算符
c语言解释法:#在Python种,&&是or,||是and,!是notor是一真为真 例如tureorfalse 则返回的是true
and是一假为假 例如  false and true 则返回的是false true and true 返回的则是true
IF语句

if语句就是当条件为真时执行下面的语句,否则就执行else里面的语句,当然我们也可以if else组合起来使用

#if格式:
if condition:语句if True:print("True")print("True1")
else:print("false")name = "ruler"
if name == "ruler":print("ruler")
if else name == "lucy"print("lucy")
else:print("not ruler")
#打印结果
True
True1
ruler
while语句

while语句在python种是非常重要和非常常用的语句。

while condition:语句#while
a = 1
while a!=10:print(a)a+=1#打印结果 1 2 3 4 5 6 7 8 9

break和continue

break和continue是为了控制循环的一个手段,break是跳出本次循环,并不再进入,而continue则是完成本次循环,然后继续下一次循环

#break
number = 5
while(number > 2):number-=1if(number == 3):breakprint("我是打印的内容")#打印内容 我是打印的内容 只有一次 因为当number等于3的时候就跳出了循环,并且不再进入#continue
number = 5
while(number > 2):number-=1if(number == 3):continueprint("我是打印的内容")#打印内容 我是打印的内容
我是打印的内容  有两次,因为continue跳出本次循环后会继续进入下次循环
for和pass

for循环在python种就是为了便利一些数组,非常的方便

Python pass 是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

Python 语言 pass 语句语法格式如下:

#for and pass
for letter in "python":print("当前字母:%s" %letter)fruits = ["banana","apple","mango"]
for fruit in fruits:print("当前水果:%s" %fruit)for index in range(len(fruits)):print("当前水果:%s" %fruits[index])for letter in "python":if letter == "o":passprint("pass")print("当前字母:%s" %letter)#打印内容
当前字母:p
当前字母:y
当前字母:t
当前字母:h
当前字母:o
当前字母:n
当前水果:banana
当前水果:apple
当前水果:mango
当前水果:banana
当前水果:apple
当前水果:mango
当前字母:p
当前字母:y
当前字母:t
当前字母:h
pass
当前字母:o
当前字母:n

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钉钉h5应用 环境报错Error: Do not support the current environment:notInDingTalk

钉钉h5应用 环境报错 Error: Do not support the current environment:notInDingTalk problem Error: Do not support the current environment:notInDingTalk reason 前端页面运行在普通浏览器 solution 需要将h5页面在后台发布后,在钉…

Ethersacn的交易数据是什么样的(2)

分析 Raw Transanction RLP(Recursive Length Prefix)是一种以太坊中用于序列化数据的编码方式。它被用于将各种数据结构转换为二进制格式,以便在以太坊中传输和存储。RLP 是一种递归的编码方式,允许对复杂的数据结构进行编码。所…

一款非常适合老中医用的《书剑中医电子处方软件简明版》

上了年纪的老中医,虽然经验丰富,但是电脑的基础都比较差,而开处方的软件通常又设计的太复杂,想用电脑开处方就非常困难,所以只好坚持手写开处方。最近,小编找到了一款非常简单的《书剑中医电子处方软件简明…

EdgeX Foundry - 导出数据到 HTTP 服务

文章目录 一、概述1.安装说明2.HTTP 服务 二、安装部署1.docker-comepse2.修改配置3.启动 EdgeX Foundry4.访问 UI4.1. consul4.2. EdgeX Console 5.测试 EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.org.cn/docs/edgex/device/export-ht…

20240304-使用VS2022编译blender3.6.2源代码

20240304-使用VS2022编译blender3.6.2源代码 一、软件环境 Win10 x64 22h2 JuneVS2022 v17.9.0CMake v3.24.4SVN v1.14.3GIT v2.29.2标签:win10 22h2 vs2022 blender 63335分栏:C 二、硬件环境 Win10 x64的PC台式机 三、获取源码 方法一 网盘下载…

Java并发编程-实现多线程的四种方式

创建线程的四种方式 创建线程的四种方式包括使用继承 Thread 类、实现 Runnable 接口、使用 Callable 和 Future 接口以及利用线程池。每种方式都有其特定的优势和适用场景。通过继承 Thread 类或实现 Runnable 接口,可以定义线程要执行的任务,并通过调用…

VUE前端问题

一、图表内容不显示 watch: {chartData3: {handler() {this.init();},},timeData3: {handler() {this.init();},},}, 添加上面代码可以动态监控数据,实现图表的展示。 二、背景图片报错显示不出来 解决方法: background: url(~/assets/login/e.png) …

go语言基础 -- 文件操作

基础的文件操作方法 go里面的文件操作封装在os包里面的File结构体中,要用的时候最好去查下官方文档,这里介绍下基本的文件操作。 打开关闭文件 import("os" ) func main() {// Open返回*File指针,后续的操作都通过*File对象操作…

分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测

分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测 目录 分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测。基于灰狼算法(GWO…

经典语义分割(二)医学图像分割模型UNet

经典语义分割(二)医学图像分割模型UNet 我们之前介绍了全卷积神经网络( FCN) ,FCN是基于深度学习的语义分割算法的开山之作。 今天我们介绍另一个语义分割的经典模型—UNet,它兼具轻量化与高性能,通常作为语义分割任务的基线测试模型&#x…

蓝桥杯-排序

数组排序 Arrays.sort(int[] a) 这种形式是对一个数组的所有元素进行排序,并且时按从小到大的顺序。 package Work;import java.util.*;public class Imcomplete {public static void main(String args[]) {int arr[]new int [] {1,324,4,5,7,2};Arrays.sort(arr)…

ctf_show笔记篇(web入门---文件包含)

目录 文件包含 78-79:最基础的文件包含,使用伪协议,大小写绕过或者通配符绕过,再或者使用其他方法 ​编辑80-81:可采用日志文件绕过或者大小写绕过(81只能日志文件绕过) ####80-86&#xff1…

网络编程:数据库实现增删改

1.数据库实现增删改 程序代码&#xff1a; 1 #include<myhead.h>2 //定义添加数据函数3 int do_add(sqlite3*ppDb)4 {5 //准备sql语句6 int add_numb;//工号7 char add_name[20];//姓名8 double add_salary;9 printf("请输入要添加的工号:&quo…

【C++】priority_queue和仿函数

priority_queue翻译过来就是优先队列&#xff0c;其实就是我们数据结构中的堆。堆这个东西之前也说过&#xff0c;它分为大根堆和小根堆&#xff0c;它的底层是一个类似数组的连续的空间&#xff0c;逻辑结构是一个完全二叉树&#xff0c;这个完全二叉树如果是小根堆的话父亲小…

数字孪生10个技术栈:数据采集的八种方式

大家好&#xff0c;我是贝格前端工场&#xff0c;上期讲了数字孪生10个技术栈&#xff08;总括&#xff09;:概念扫盲和总体介绍&#xff0c;获得了大家的热捧&#xff0c;本期继续分享技术栈&#xff0c;大家如有数字孪生或者数据可视化的需求&#xff0c;可以联络我们。 一、…

20240307-2-前端开发校招面试问题整理HTML

前端开发校招面试问题整理【2】——HTML 1、HTML 元素&#xff08;element&#xff09; Q&#xff1a;简单介绍下常用的 HTML 元素&#xff1f; 块状标签&#xff1a;元素独占一行&#xff0c;可指定宽、高。 常用的块状元素有&#xff1a; <div>、<p>、<h1&…

MySQL 备份方案

优质博文&#xff1a;IT-BLOG-CN 一、为什么要备份 【1】容灾恢复&#xff1a;硬件故障、不经意的 Bug 导致数据损坏&#xff0c;或者服务器及其数据由于某些原因不可获取或无法使用等&#xff08;例如&#xff1a;机房大楼烧毁&#xff0c;恶意的黑客攻击或 Mysql 的 Bug 等&…

Leetcode : 147. 对链表进行插入排序

给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。 每次迭代中&#xff0c;插入排序只从输…

Java多线程——wait和notify方法作用,线程的状态

目录 引出wait和notify方法作用线程的状态创建线程有几种方式&#xff1f;方式1&#xff1a;继承Thread创建线程方式2&#xff1a;通过Runnable方式3&#xff1a;通过Callable创建线程方式4&#xff1a;通过线程池概述ThreadPoolExecutor API代码实现源码分析工作原理&#xff…

力扣刷题Days7第二题--242.有效的字母异位词(js)

目录 1&#xff0c;题目 2&#xff0c;代码 2.1 我思考完成的-初版--哈希表思想 2.2略改进 2.3排序思想 3&#xff0c;学习与总结 3.1 判断数组元素是否都为0 3.2总结 1&#xff0c;题目 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词…