1.python基础要点(三)

Python全栈(一)基础之1.计算机要点 计算机是现代用于高速计算的电子计算机器,由软件、硬件等部分组成。计算机语言是用于人与计算机之间通讯的语言,经历了机器语言、汇编语言到高级计算机语言的发展,高级计算机语言又分为编译型语言和解释型语言。交互方式包括命令行的交互方式TUI和图形界面化的交互方式GUI,命令行中可以执行Dos命令。文本分为纯文本和富文本,字符与二进制之间的转换包括编码和解码,有ASCII、GBK、Unicode等字符集。计算机经常使用二进制,进制之间可以转化。环境变量是操作系统中的一些变量,可以查看、添加、修改、删除环境变量。 阅读详情

注:本文主要转载自廖雪峰的python教程,部分内容由自己编写。

一、函数

(1)递归函数

定义:如果一个函数在内部调用自身本身,这个函数就是递归函数。


在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:

fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n

所以,fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。

于是,fact(n)用递归的方式写出来就是:

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。


二、高级特性

1、切片

L[1:3]

L[:3]
L[-2:-1]
以上均不取最后的索引值。

L[-2:]
以上取最后的索引值。

实操:

切片操作十分有用。我们先创建一个0-99的数列:

>>> L = list(range(100))
>>> L
[0, 1, 2, 3, ..., 99]

可以通过切片轻松取出某一段数列。比如前10个数:

>>> L[:10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

后10个数:

>>> L[-10:]
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

前11-20个数:

>>> L[10:20]
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

后第2-第11个数:L[-11:-1]


前10个数,每两个取一个:

>>> L[:10:2]
[0, 2, 4, 6, 8]

所有数,每5个取一个:

>>> L[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

甚至什么都不写,只写[:]就可以原样复制一个list:

>>> L[:]
[0, 1, 2, 3, ..., 99]

tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

>>> (0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)

字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'

2、迭代

只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。

迭代:for ... in ...

可迭代对象(不一定要有下标):list、turple、dict、字符串

对于dict来说,默认情况下迭代的是key值。如果想迭代的是value值,可以使用 【for value in d.values():】。如果要同时迭代key和value值,则要【for key,value in d.items():】

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
...     print(key)
...
a
c
b

由于字符串也是可迭代对象,因此,也可以作用于for循环:

>>> for ch in 'ABC':
...     print(ch)
...
A
B
C
检测对象是否可迭代的办法:

 from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代,还可检验元组:isinstance((1,2,3),Iterable)---True
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

用 enumerate函数来迭代list的i和value值

>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C
上面的for循环里,同时引用了两个变量,在Python里是很常见的。

如:

 for x, y in [(1, 1), (2, 4), (3, 9)]:
...     print(x, y)
...
1 1
2 4
3 9

3、列表生成式

列表生成式:单层循环,双层循环,条件过滤

L1 = ['Hello','World',18,'Apple',None]L2 = ???

期待输出: ['hello','world','apple']

代码:

In [46]:L1 = ['Hello','World',18,'Apple',None]

In [47]:L2 = [s for s in L1 if isinstance(s,str)]

In [48]: print (L2)['Hello','World','Apple']


疑惑:

字典是否可以有生成式?

4、生成器(generator)

一边循环一边计算的叫生成器。

类型:list生成器【用()代替[]的列表生成式格式便可生成】、yield函数形式

5、迭代器

可用于for循环(list,turple,dict,s,生成器等)的都是Iterable

可用于next()函数并不断返回下一个值的是Iterator

但Iterable可通过调用Iter()函数来获得一个Iterator

6、高阶函数(函数式编程)

(1)lambda:

格式:

lambda 参数:返回值

eg:f=lambda x:x+2

适用场景:可用于定义简单函数,提高效率

(2)map/reduce

map示例:

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

>>> b=list(map(lambda x:x+2,a))  #其中,a=[1,2,3]

reduce :用于递归计算。(适用reduce函数须从functools库中调用)

PS:最后的调用是

再看reduce的用法。reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

示例 1/2:比方说对一个序列求和,就可以用reduce实现:

>>> from functools import reduce
>>> def add(x, y):
...     return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])
25
from functools import reduce

def char2num(s):
    return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]

def str2int(s):
    return reduce(lambda x, y: x * 10 + y, map(char2num, s))     #将字符串形式变为整数形式
调用:str2int(‘135’)

输出:135


示例3:

reduce(lambda x,y:x*y,range(1,n+1))

(2)filter函数

filter()函数是一个过滤器。

示例1:

b=list(filter(lambda x:x>5 and x<8,range(10)))

使用filter函数首先需要一个返回值为bool型的函数,如lambda x:x>5 and x<8定义了一个函数来判断,结果可以是true、false两种,最后再把挑出的true的元素组成列表。

第一章 初识SpringBoot 提供大量的自动配置Spring和第三方库,开发者可以根据项目需求选择相关的starters依赖,而无需手动配置大量的Spring配置文件,开箱即用,无需配置XML,无代码生成。Spring Boot与Spring Cloud等框架集成,为构建微服务提供了强大的支持,并通过Spring Cloud实现服务注册、负载均衡、熔断等功能。本质上讲,Spring Boot就是Spring,它做了那些本应我们去做的Spring Bean配置等工作。以上就是一个简单的Spring Boot应用的创建和运行过程。 阅读详情

相关推荐

计算机组成原理(二)—— 数据的表示与运算

本章目录引言一、数制与编码1.1 进位计数制1.1.1 进制及转换1.1.2 真值、机器数1.2 BCD码1.3 ASCII 码1.4 校验码1.4.1 奇偶校验码1.4.2 海明码1.4.3 CRC循环冗余码二、定点数的表示和运算2.1 定点数的表示2.1.1 无符号2.1.2 有符号(原码、反码、补码、移码)2.2 定点数的运算2.2.1 移位运算2.2.2 加减运算(溢出判断)2.2.3 乘法运算2.2.4 除法运算2.3 强制类型转换2.4 数据的存储和排列三、浮点数的表示和运算3.1 浮点数的表示

S mile0804的博客 7473

Python初学函数

函数 def fact(n): def是函数的开头 fact是函数名 n是参数 xxx return s 返回值 def fact(n,m=1): n是必选参数 m=1是可选参数 就是可以 fact(10) 也可以 fact(10,5) m可以被赋值 也可以默认值 def fact(n,*b): s=1 for i in range(1,n-1) s *= i for item in b: s *=item return s return也可以返回多个返回值 return s//m,n,m

qq_43535469的博客 1758

QT邂逅豆包API:打造专属文章生成神器

通过本次探索,我们成功基于 QT 调用豆包 API 开发出了文章生成工具。从前期的准备工作,到核心代码的实现,再到功能的拓展与优化,每一步都凝聚着技术的魅力与挑战。我们学会了申请豆包 API 密钥,搭建 QT 开发环境,创建网络请求类来与豆包 API 进行交互,构建请求体并解析响应,还为工具添加了友好的界面交互,提升了性能。

大雨淅淅的博客 1973

python函数(细讲)

对学python的小白可能有所帮助,对于我自己这种没学扎实的是真有用。惭愧!!!小白真的是要好好学习呦!!!

小菜包的博客 1407

SQL Server2008详细安装步骤(超详细步骤)

https://pan.baidu.com/s/1yvolqfU-AbiuGrIzblA7pA 提取码:lzw81.下载好安装包后解压到除C盘以外的磁盘,避免系统卡顿2.使用管理员身份打开安装程序注意:使用管理员身份打开时,此时如果显示以下画面属于正常现象,下载安装即可。因为.net现在有很多软件都需要,包括SQLSERVER2008,它里面有visual studio都要有net,电脑系统没有的话安装一下好了。3.选择全新安装或向现有安装添加新功能4.点击确定5.出现以下画面之后,输入产品密钥即可(密钥在

m0_67402774的博客 4万+

具身智能端到端大模型VLA (Vision Language Action)

在语言为条件的机器人任务中,策略必须具备理解语言指令、视觉感知环境并生成适当动作的能力,这就需要VLA的。例如,在自动驾驶领域,传统的做法是将感知、预测、规划等步骤分开处理,而VLA则试图用一个统一的框架来替代这种分立的方法。另外,VLA的模型对于算力的需求很大,单片AI算力1000Tops的Thor大概率会延期发布,加上英伟达芯片的量产时间与成本挑战,以及在国内的应用情况,对车企而言是个大问题。以谷歌DeepMind推出的RT-2为例,该模型可以在新的物体、背景和环境中表现出显著改善的性能。

具身智能机器人 1万+

python,C语言求阶乘函数

1.求n的阶乘,代码如下: def fact(n): s=1 for i in range(1,n+1): s=s*i return s print(fact(n)) 2.求a!+b!+c!,代码如下: def fact(n): s=1 for i in range(1,n+1): s=s*i return s a,b,c=eval(input("请输入三个整数,用逗号分隔:")) x=fac

minghaibuai的博客 3269

Android SystemUI——初始化流程(三)

1、Android 系统在启动之后,首先会Zygote进程,Zygote进程又会进一步启动 SystemServer进程,它会启动各种系统所需要的服务,在监听AMS启动完毕之后,还会启动SystemUIService。2、在启动SystemUIService服务之前,系统首先会创建SystemUI对应的进程,获取SystemUIAppComponentFactory实例对象,调用instantiateApplicationCompat创建SystemUIApplication实例对象并设置回调方法。

小旭的专栏 1158

近期Python的学习笔记

近期笔记 Python允许函数的嵌套定义,即在函数内部可以再定义另一个函数 函数是一段具有特定功能的,可重复使用的代码段 ,它能够提高程序的模块化和代码的复用率。 是由def关键字来定义函数 函数体是函数每次被调用时执行的代码,由一行或多行语句组成 函数并非总是直接输出数据,它还可以处理一些数据,并返回一个或一组数值。函数返回的值被称为返回值。在Python中,函数使用return语句返回值 ...

hjl201030的博客 261

基于未来出行解决方案的场景实例:城市空中交通(UAM)的飞行路径规划与避障

本文介绍了使用Simulink进行城市空中交通(UAM)飞行路径规划与避障的仿真方法。主要内容包括:1)UAM系统架构与核心挑战;2)详细建模步骤,从城市3D环境构建到飞行器动力学模拟;3)全局路径规划(A*/RRT*)和局部避障(DWA/APF)算法实现;4)多机协同与冲突解决;5)关键场景仿真与性能评估;6)高级功能拓展方向。通过Simulink的数字孪生系统,可有效验证UAM在复杂城市环境中的可行性,为未来立体交通发展提供技术支撑。

xiaoheshang_123的博客 257

这20个网络工程项目经验,帮我跳槽加薪不止一次

嘿,大家好,我是圈圈,一个在网络工程圈子里混了十多年的老鸟。从国企的网管起步,到现在给大厂做顾问,我见过太多简历:有的光鲜亮丽,证书一堆,但一聊项目,就露怯;有的简历朴实,但列出的项目经验让人眼前一亮,直接拿offer。为什么?因为招聘官最看重实战。理论谁都会背,项目经验才是你的“硬通货”。尤其在网络工程这行,项目不光证明你的技能,还展示你解决问题的能力。今天,我就分享20个我亲身经历或见过的网络工程项目经验。每个都值得写进简历,不是吹牛,这些项目帮我跳槽加薪不止一次。

网络技术联盟站 432

python中fact()是什么意思_python中fact函数是什么及如何使用?

虽然已经和大家讲述过很多函数了,但是因为在项目搭建里,函数是起着十分重要的作用,所以需要用到的函数有很多,而绝大部分函数,大家经常使用过程中,轻松运用使用,但是还有少部分函数,大家却未见过,也不知道怎么去使用,因此,针对非常见型函数,比如“fact函数”小编会细致给大家讲解。往期内容回顾——函数的定义与调用在Python中,函数是这样定义的:defhelloPrint(name):print(‘...

weixin_32047493的博客 1万+

基于RK3588平台的高分辨率多摄像头系统深度优化:从48M单摄到双摄分时复用的完整解决方案

本文深入解析了RK3588平台的高分辨率摄像头实现方案。重点介绍了:1)RK3588的MIPI PHY硬件架构,包括DCPHY和DPHY的资源配置及工作模式;2)双ISP合成技术,通过并行处理提升48M高分辨率图像的处理能力;3)以OV50C40传感器为例,详细展示了48M单摄系统的硬件连接、I2C设备配置和关键参数设置。文章为开发者提供了从硬件连接到软件配置的完整技术方案,有助于实现高性能嵌入式视觉系统。

FJN110的博客 675

python基础要点

python基础要点

Moyv的博客 179

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python基础语法要点

前言:为各位初学python的朋友 总结排列了一些学习时的基础语法点,仅供参考。 目录 一、库编程 二、文件操作函数 三、序列类型的通用操作符和函数 四、集合类型的操作符 五、列表类型特有的函数或方式 六、集合类型的操作函数或方法 七、程序的分支结构 八、程序的循环结构 九、字符串处理函数 十、字典的方法或操作 十一、Python 语言保留字(33个) 一、库编程 import A A.b() from A import * b() + c() ...

weixin_50950983的博客 683

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[Python笔记_1] Python基础知识要点

Python学习笔记

PurpleStrange的博客 419

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

20个Python入门基础语法要点

今天,我们将聚焦于Python的20个基础语法要点,让你的编程之旅更加顺畅。

weixin_53707653的博客 520

python基础例题

python基础 hello,大家好,我是Dream,今天给大家整理了一些Python中基础的例题,帮助大家及时复习和巩固知识,多学多练,相信你一定可以把python学好的! python基础: #将字符列表转化为字符串 l=['Python','Circle','is','ok'] j=''.join(l) print(j) #将字符串居中 a='徐以鹏比易烊千玺帅亿点' b=a.center(50) c=a.center(50,'*') print(b) print(c) #find方法找到字符串中

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 5177

Python字符串:基础要点与实践应用

Python字符串是一种数据类型,用于存储和操作文本数据。

2401_85240630的博客 485

Python初学者入门指南8大要点

Python是一种高级编程语言,以其简洁易读著称,广泛应用于数据分析、机器学习、Web开发等领域。首先,你需要安装Python环境。安装Python访问Python官方网站,根据你的操作系统下载并安装最新版本的Python。安装完成后,打开终端或命令提示符,输入或来检查Python是否安装成功。通过本篇文章,我们了解了Python编程的8大要点,包括Python简介与环境搭建、基础语法、数据类型与变量、条件语句与循环、函数与模块、文件操作、异常处理以及面向对象编程。

2401_85428892的博客 3833

Python基础语法速览与核心要点

Python中有很多常用的库和工具可以帮助我们更高效地进行数据处理、控制流和开发。同时,Python还支持函数式编程,通过使用lambda函数和函数式编程的概念,可以实现更高效的控制流。Python,作为一种流行的编程语言,因其简洁易学、广泛的应用领域以及强大的生态系统而备受青睐。如果您想深入学习Python编程,建议从官方文档和教程入手,逐步掌握Python的基本语法和核心要点。表达式则是基于运算符进行计算的结果。在Python中,变量用于存储数据,数据类型包括整型、浮点型、字符串、列表、字典等。

2501_90410679的博客 155

python 基础知识—python要点

python 基础知识第1讲:python要点 1.计算机语言 1.1基本概念 计算机语言(computer language):是人与计算机之间传递信息的媒介。计算机系统最大特征是指令通过一种语言传达给机器。为了使电子计算机进行各种工作,就需要有一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。这些就是计算机能接受的语言。 原始:用手动控制计算机...

wuhaiwenpps的博客 296

python三引号解析_三引号 python

Python中单引号、双引号和三引号的区别先说1个双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行如:s1 = "hello,world"如果要写成多行,那么就要使用\ (“连行符”)吧,如s2 = "hello,\world"s2与s1是一样的。如果你用3个双引号的话,就可以直接写了,如下:s3 = """...文章技术小甜2017-11-15822浏览量Python中单引号、双引号...

weixin_39604557的博客 982

python基础课程要点

python基础课程要点计算机基本概述1. 计算机基本概念1.1 计算机是什么?1.2 计算机的组成?2. 计算机语言概述2.1 计算机语言的基本概念2.2 计算机语言的发展2.3 解释型语言和编译型语言的区别交互方式1. 交互方式1.1 交互方式的种类1.2 文本交互模式打开的方式(win)1.3 DOS命令文本文件和字符集1. 文本文件和字符集1.1 文本文件1.2 常见的字符集进制1. 进制1.1 进制之间的转换1.2 进制的计数1.3 数据间的换算环境变量1. 基本概念2. path环境变量常见问

weixin_46008163的博客 179

Python基础学习要点1

作为初学者笔记基础还是要做好的,为此特意把一些经常犯错的整理下留作以后备用! 1. 浮点型位数的写法:%.数字f 2. a. %06d,表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出 b. %.2f,表示小数点后显示的小树位数 3. input接收到的数据当做字符串处理 4. 加、减、乘、除、整除、取余、指数、括号 优先级:括号>指数>乘、除、取余、整除>加、减 5. 复合赋值注意点:先算复合赋值表达式右边的,再算复合赋值表达式 6 ....

天生我才必有用 262

1.Python基础要点

Python解释器 CPython:官方版本的解释器,用C语言开发。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。CPython用>>>作为提示符 IPython:IPython是基于CPython之上的一个交互式解释器,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。IPython用In [序号]:作为提示符 如果要和Java或.Net平台交互,最好的办法不是用Jython或Iro

城南讲马堂 230
上一篇: 假设空间 版本空间&查全率 查准率
下一篇: Python运算符和表达式
liangyingyi1006
博客等级 码龄10年 35粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值