后端学习笔记:Python基础

后端学习笔记:Python基础

数据类型:

Python中主要有以下几种常用的基本数据类型:

  • String 字符串类型,用单引号或者双引号引用
  • Number 数字类型,包括浮点数,整数,长整数和复数
  • List 列表项,类似于数组
  • Dictionary 字典,一个可变数据类型,加强版的Map,存储键值对类型
  • Tuple 元组,相当于一个不可变的列表项

访问列表(元组)和字符串:

Python的列表访问和字符串访问很相似,均可以通过下标的形式访问,且支持前向访问和逆向访问,确定访问步长的特性。

Python中的列表项用[]确定,例如:

	hello = "Hello,Python!"
	helloList = []
	for char in hello:
	    helloList.append(char)
	print(hello)
	print(helloList)

这里声明的helloList变量就通过[]来确定其类型是List,不同于Java和Python中的列表,Python中的列表可以存储不同类型的数据变量,比如:

mutiList = ["name", "age", 18]
print(mutiList)

在访问列表时,可以通过前向和后向访问:
选自菜鸟教程
如图所示,前向访问和其他语言一致,从下标0开始递增;后向访问则从下标-1开始,依次递减。

我们还可以访问特定范围的元素,通过[起始范围:结束范围:步长(可选)]来访问(实际上是创建一个全新的列表)特定的范围:

hello = "Hello,Python!"
helloList = []
for char in hello:
    helloList.append(char)
# [起始下标:结束下表]
print(helloList[0:5])
# [起始下标:结束下表:步长]
print(helloList[0:11:2])
# [起始下标:结束下标(反向访问)]
print(helloList[-8:-1])
print(helloList[0:-2])

输出结果为:
在这里插入图片描述

拓展列表

除此之外,我们还可以通过 *+ 操作符来拓展列表,*代表的是原序列的重复,+来拼接新的内容,比如说:

hello = "Hello,Python!"
helloList = []
for char in hello:
    helloList.append(char)
print(helloList * 2)
print(helloList + ["!", "!"])

输出结果为:
在这里插入图片描述

字符串的访问

实际上来说对于字符串的访问和列表的访问基本上是一致的,我们可以通过列表项的访问方式来访问字符串。

helloList = "Hello,Python!"
# helloList = []
# for char in hello:
#     helloList.append(char)
# [起始下标:结束下表]
print(helloList[0:5])
# [起始下标:结束下表:步长]
print(helloList[0:11:2])
# [起始下标:结束下标(反向访问)]
print(helloList[-8:-1])
print(helloList[0:-2])
print(helloList * 2)
print(helloList + "!!")

结果:
在这里插入图片描述

元组的访问

元组用()标识。
元组的访问也是一致,但是由于元组不可变,所以拓展语句对其无效:

tuple = ("a","b","c","d","e")
print(tuple[0:6])
print(tuple[0:6:2])
print(tuple[0:-1])

结果:
在这里插入图片描述

访问字典

字典通过{}来表示。

对于字典的访问和Kotlin中的Map的访问类似,都是通过get方法来访问,get方法重载符是[]比如说dic.get(key) 就可以写成 dic[key];典型例子:

	namebook = { "Name" : "Alex", "Age" : 18 , "Class" : "First" }
	print(namebook.get("Name"))
	# 只读Key
	for key in namebook:
	    print(key, namebook[key])
	# 同时读KV
	for key,value in namebook.items():
	    print(key, value)

条件控制语句

条件语句

首先是if条件语句,由if语句,elif语句,else语句组成,就相当于其它语言中的if,else if,else语句一样:

	str = ""
	str += input()
	if str == "a":
	    print("A")
	elif str == "b":
	    print("B")
	elif str == "c":
	    print("C")
	else:
	    print("not match")

需要说明的是,Python没有原生的switch case语句,不过Python3.1中引入了match语句,类似于switch case语句,不同的是其用case _代表任何项都不匹配的情况:

str = ""
str += input()
match(str):
    case "a": print("match a")
    case "b": print("match b")
    case "c": print("match c")
    case _: print("not match")

循环语句

循环语句分为for循环和 while循环,for循环可以遵循类似Kotlin中的for循环,创建一个范围类为循环的范围:

for a in range(0,5):
    print(a)

while循环就如下:

b = 0
while b < 5:
    b += 1
    print("repeat..."+ str(b))

同时我们可以用break关键字和continue关键字来控制循环,他们的作用和其他语言是一致的:

for a in range(0,5):
    if (a == 3): continue
    print(a)

b = 0
while b < 5:
    b += 1
    if (b == 3): break
    print("repeat..."+ str(b))

结果如下:
在这里插入图片描述

函数定义&调用

Python中用def来声明一个函数。

Python中的函数定义比较简单(因为它是脚本语言),只要确定函数名和参数列表即可,Python 采用鸭子类型哲学,即只要一个对象具有所需的方法或属性,就可以使用它,而不关心对象的具体类型。这种方式让代码更加灵活和通用。

同时,这种特性可以让我们实现曾经的非脚本语言无法做到的事情:“一个函数可以返回多种数据类型”:

def sayHello():
    print("hello python")

def mutiReturnType(clazz):
    match(clazz):
        case "String": return "string"
        case "Number": return 1
        case "List": return [1,2,3,4,5]
        case _: print("not match")

sayHello()
clazz = input()
result = mutiReturnType(clazz)
print(result)

在上述片段中,mutiReturnType函数就可以返回四种类型的参数。

默认参数值

和Kotlin一样,Python中的函数也可以使用默认参数值:

def defaultParaMethod(a = 10, b = 11, c = 12, d = 13):
    print(a,b,c,d)

这样我们在调用时就可以避免传入一些我们不关心的参数,我们可以这样调用:

defaultParaMethod(d = 16)

函数的参数传递

关于Python的参数传递大致遵循C语言的原理,对于不可变参数,采取值传递;对于可变参数则是采取引用传递,比如可以通过下边的示例来理解:

def passingParam(str = "", int = 0, list = [], dic = {}):
    if (len(str) > 0):  str *= 2
    elif (int != 0):  int *= 2
    elif (len(list) > 0):  list *= 2
    elif (len(dic) > 0): dic["sp"] = 22


# string
print("===================string=====================")
para = "abc"
result = passingParam(str = para)
print(para)

# int
print("===================int=====================")
para = 11
result = passingParam(int = para)
print(para)
# list
print("===================list=====================")
para = [1,2,3]
result = passingParam(list = para)
print(para)
# dic
print("===================dic=====================")
para = {"gender":"man", "age":16}
result = passingParam(dic = para)
print(para)

结果如下:
在这里插入图片描述

不定长参数

在Python中,我们可以通过在参数名前加上*来声明一个不定长参数,访问参数的手段也和其他语言大同小异,采取列表的访问形式即可:

def biggestNumber(*numbers):
    biggest = numbers[0]
    for number in numbers[1:]:
        if number > biggest:
            biggest = number
    return biggest

bigNumber = biggestNumber(-1,5,6,10,-9,105)
print("biggest", bigNumber)

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

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

相关文章

【Linux】常用基本命令

wget网址用于直接从网上下载某个文件到服务器&#xff0c;当然也可以直接从网上先把东西下到本地然后用filezilla这个软件来传输到服务器上。 当遇到不会的命令时候&#xff0c;可以使用man “不会的命令”来查看这个命令的详细信息。比如我想要看看ls这个命令的详细用法&…

一个土木工程专业背景的开发者,讲述开源带给他的力量

在前段时间我们举办的“TDengine Open Day”第一季技术沙龙中&#xff0c;TDengine 应用研发高级工程师谭雪峰进行的“开源之路&#xff1a;程序员的成长与探索”主题分享获得了众多参会者的好评。谭雪峰从自身独特的职业发展经历出发&#xff0c;分享了自己在开源领域的种种收…

替换或重写Tomcat内置的404页面

替换或重写Tomcat内置的404页面 准备一个Tomcat隐藏Tomcat的相关信息纯净版的Tomcat解决Tomcat启动乱码的问题 替换或重写Tomcat内置的404页面创建新的首页和错误页面页面代码如下所示&#xff1a;创建首页index.html创建error_404.html页面创建其他错误页面创建编写web.xml&am…

工业软件的分类与选择策略:针对中小企业的实际应用考量

工业软件是现代工业体系的“大脑”&#xff0c;已经渗透到几乎所有工业领域的核心环节&#xff0c;是现代产业之“魂”&#xff0c;是制造强国之重器。工业软件通过优化生产流程、实时监控设备状态、实现自动化控制等功能&#xff0c;可以帮助企业显著提升生产效率和质量&#…

让工厂像手机一样更“聪明”

手机&#xff0c;作为我们日常生活中不可或缺的一部分&#xff0c;以其智能、便捷、高效的特点&#xff0c;彻底改变了我们的沟通、娱乐和工作方式。那么&#xff0c;想象一下&#xff0c;如果工厂能像手机一样便捷&#xff0c;那么生产过程中的每一个环节都将变得触手可及。通…

jstack的火焰图使用说明

1、jstack的官方文档说明 How to use Flame Graph? - Fast thread 2、jstack的文件分析网站&#xff0c;可以关注cpu消耗比较高的线程和火焰图 GC log analysis error

[word] Word如何删除所有的空行? #职场发展#学习方法

Word如何删除所有的空行&#xff1f; 很多网友从网页复制文字粘贴到word文档后发现段落之间有空行&#xff0c;如果文字不多&#xff0c;手动删除这些空行也没有多少工作量&#xff0c;但是如果文字的字数达到成千上万&#xff0c;一个个手动删除这些空行还是很繁琐的。那么&a…

Linux-笔记 高级I/O操作

前言 I/O&#xff08;Input/Output&#xff0c;输入/输出&#xff09;是计算机系统中的一个重要组成部分&#xff0c;它是指计算机与 外部世界之间的信息交流过程。I/O 操作是计算机系统中的一种基本操作&#xff0c;用于向外部设备&#xff08;如 硬盘、键盘、鼠标、网络等&am…

Spring Cloud - 开发环境搭建

1、JDK环境安装 1、下载jdk17&#xff1a;下载地址&#xff0c;在下图中红色框部分进行下载 2、双击安装&#xff0c;基本都是下一步直到完成。 3、设置系统环境变量&#xff1a;参考 4、设置JAVA_HOME环境变量 5、在PATH中添加%JAVA_HOME%/bin 6、在命令行中执行&#xff1a;j…

Python学习笔记17:进阶篇(六)代码测试

代码测试 代码测试是软件开发过程中的关键环节&#xff0c;旨在确保代码质量、功能正确性以及性能符合预期。 在开发过程中&#xff0c;进行代码测试有很多好处&#xff1a; 提高软件质量&#xff1a;通过发现并修复错误&#xff0c;测试有助于提升软件的功能性、可靠性和稳…

黑马程序员-瑞吉外卖-前六章

黑马程序员瑞吉外卖 文章目录 1、开发环境搭建1.1 数据库环境1.2 maven项目搭建1.2.1 新建项目1.2.2 整合MyBatisPlus1.2.3 整合Druid1.2.4 配置文件application.yml1.2.5 尝试启动项目1.2.6 将前端静态页面引入到项目中 2、 后台系统登录功能2.1 需求分析2.2 代码开发2.2.1 创…

解析网页数据并且处理网页正则表达式与re模块

目录 一、解析网页数据的技术 1&#xff0e;正则表达式 2&#xff0e;XPath 3&#xff0e;Beautiful Soup 4&#xff0e;JSONPath 二、正则表达式的语法 1&#xff0e;元字符 2&#xff0e;预定义字符集 三、 re 模块的使用 1&#xff0e;创建 Pattern 对象 2&#…

libreoffice报: error while loading shared libraries: libcups.so.2: cannot

切换到cd /opt/libreoffice7.1/programlibreoffice查看版本的时候报:/opt/libreoffice7.1/program/soffice.bin: error while loading shared libraries: libcups.so.2: cannot open shared object file: No such file or directory ./soffice --version解决办法&#xff1a; …

MySQL之复制(六)

复制 复制拓扑 拥有备库的主-主结构 另外一种相关的配置是为每个主库增加一个备库&#xff0c;如图所示。这种配置的优点是增加了冗余&#xff0c;对于不同地理位置的复制拓扑&#xff0c;能够消除站点单点失效的问题。你也可以像平常一样&#xff0c;将读查询分配到备库上。…

深入JVM:详解JIT即时编译器

文章目录 深入JVM&#xff1a;详解JIT即时编译器一、序言二、基础概念1、何为JIT即时编译2、热点代码 三、HotSpot内置的即时编译器1、C1编译器2、C2编译器3、分层编译3.1 协作流程 四、常见JIT优化技术1、方法内联2、逃逸分析&#xff08;1&#xff09;同步锁消除&#xff08;…

从零开始学习Linux(10)----动静态库

目录 1.制作静态库 1.编写源代码 2.编译 3.打包库 4.使用库 2.制作动态库 1.编译 2.打包库 3.总结 3.理解动态库加载 1.站在系统角度理解 2.谈谈编址&#xff0c;可执行程序 1.制作静态库 1.编写源代码 假设你编写了两个源代码文件mymath.c和myprintf.c以及它们对应…

vuex的actions返回结果类型是promise及actions方法互相调用

this.$store.dispatch(‘logout’)返回的结果是Promise类型的 调用成功的情况下&#xff0c;返回状态为fulfilled&#xff0c;值为undefined。 所以可以直接进行.then操作&#xff1a; this.$store.dispatch(logout).then((result) > {console.log(result); });因为 Vuex …

正则表达式;grep、sed、awk、soft、uniq、tr 详解

正则表达式 概念 正则表达式&#xff08;Regular Expression&#xff0c;常简写为regex、regexp或RE&#xff09;是一种强大的文本处理工具&#xff0c;它使用一种特殊的字符序列来帮助用户检查一个字符串是否与某种模式匹配。 标准正则表达式 首先安装正则表达式pcre库 创…

草莓不是莓,西瓜才是莓——解读 Kubernetes 中被驱逐的 Pod

每天都有成千上万的 Pod 从节点中被驱逐。它们无家可归、困惑不已&#xff0c;不得不放弃之前的生活方式。其中一些甚至变成无节点状态。 在 Kubernetes 中 Pod 被驱逐意味着什么&#xff1f;我们常常能看到 Pod 因为资源不足被终止。但为什么会发生这种情况呢&#xff1f; 驱…

ChatGPT API技术教程OpenAI APIKey在线对接-Chat Completion对象

表示模型根据提供的输入返回的聊天完成响应。 {"id": "chatcmpl-123","object": "chat.completion","created": 1677652288,"model": "gpt-3.5-turbo-0125","system_fingerprint": "fp…