不破不立,那些年错过的Python

随着OpenAI的发展,Python的重要性不言而喻。不知你是否和我一样,不知道曾经说过多少次我要学Python,都没有执行起来… 近期我在知识库中更新了一波Python教程,选取了这一篇分享给大家。

前言

很多时候我们需要让程序变成交互性的,能够对用户输入做出响应。交互性的应用程序可以极大丰富应用功能,比如我们可以做一个自己的聊天机器人等等,我们先来看如何接收用户的输入。

认识input函数

函数input()函数可以让程序暂停运行,等待用户输入文本。获取用户 输入后,Python将其赋给一个变量。比如我们让用户输入姓名,代码如下所示。

name = input("请输入你的姓名:")
print(f"欢迎{name}")
work = input("请问你的工作是什么:")
print(f"哦,{work}是一份非常有前景的工作")

input函数可以接受一个prompt提示语,等待用户输入完成后,会将用户输入的内容赋值给定义的变量。运行上述程序,输入“黄林晴”,工作输入“Android开发工程师”

怎么样,是不是瞬间逼格高了很多,人工“智能”的一小步。

如果我们的prompt提示语过长,可以采用字符串拼接的方式,代码如下所示。

prompt = "尊敬的先生/女士,非常荣幸能与您进行交流。在这个美好的时刻,我想请教您一个问题:请问"
prompt += "\n你叫什么名字?"
name = input(prompt)

我们也可以结合while循环让那个用户一直输入,直到输入结束标志,代码如下所示。

prompt = "Q:"
key = ''
while key != 'end':key = input(prompt)if key != 'end':print(f"A:我不知道什么是{key}")else:print("Bye!")

运行程序结果如下所示。

当代码量比较多的时候,我们会将方法拆分为各种函数。

函数

认识函数

函数是带名字的 代码块,用于完成具体的工作。要执行函数定义的特定任务, 可调用该函数。比如我们将上面的方法写在一个函数里面。代码如下所示。

def chat () :prompt = "Q:"key = ''while key != 'end':key = input(prompt)if key != 'end':print(f"A:我不知道什么是{key}")else:print("Bye!")

这里我们使用def关键字,定义了一个名为chat的函数。如果我们想调用整个函数直接调用chat()即可。

函数传参

在Python如果函数中包含参数,我们只直接在函数的括号内填写即可,比如上述方法中结束标志改为从参数传入,修改代码如下所示。

def chat(enkey):prompt = "Q:"key = ''while key != enkey:key = input(prompt)if key != enkey:print(f"A:我不知道什么是{key}")else:print("Bye!")

调用时,直接传递参数即可,代码如下所示。

chat("end")

当然我们也可以为形参指定默认值,比如

def chat(enkey = "end"):

这些与Kotlin都大同小异,所以我们只是简单的记录一下。

带有返回值的函数

有些函数是需要返回值的,而带有返回值函数的定义Python是不同于其他语言的,其他语言都要定义返回类型,而Python直接返回即可。比如我们编写一个方法求两个数的和,可以编写如下所示的代码。

def sum(num1, num2):return num1 + num2

调用方法如下所示。

value = sum(1, 2)
print(f"两个数的和为:{value}")

运行程序,打印结果为3,可以看出Python函数的声明还是非常简洁的。

导入函数

在实际项目开发中会有大量的函数,为了便于管理,我们通常会将函数放在单独的模块中我们也可以说放在单独的文件中,比如我们新建pys文件夹,在文件夹下创建sum.py文件,将上述定义的sum函数写在这个文件中,然后需要在main.py中调用这个方法,当前目录结构为

现在我们在main.py中调用这个方法,是没有办法直接调用到的,需要导入这个模块或者这个模块对应方法,代码如下所示。

from pys.sum import sum_number

导入之后就可以在main.py中正常调用了。在导入外部模块函数的时候可能出现与当前模块冲突的情况,所以我们还可以使用 as 关键字给导入的函数指定别名,比如,我们将sum_number函数指定别名为add,调用代码如下所示。

from pys.sum import sum_number as addvalue = add(1, 2)
print(f"两个数的和为:{value}")

同样的我们也可以给导入的模块指定别名,这里就不展示了。如果我们想要导入模块下的所有函数可以使用*,代码如下所示。

from pys.sum import *

类的定义

面向对象编程的单位就是类,我们都是有开发基础的,所以这里不说类是什么,我们看如何在Python中使用类。

我们创建一个Student类,用于记录Student的姓名、年龄,成绩等信息,创建出的Student类如下所示。

class Student:def __init__(self, name, age, core):self.name = nameself.age = ageself.core = coredef get_core(self):return f"{self.name}的成绩是{self.core}分"

这里有几点需要注意的:

  • 这里的init方法相当于java中的构造方法
  • 形参self是必不可少的,在实例化Student类的时候会自动传入
  • get_core函数由于要访问属性,所以也要传入一个self形参,如果不需要则不用包含

现在我们来实例化一个student,并且获取他的成绩,调用代码如下所示。

from pys.Student import Studentstudent1 = Student("黄林晴", 28, 95)
print(student1.get_core())

运行程序如下图所示。

其他的如更改类属性等方法都与在Java中大同小异,所以直接省略了。

类的继承

在Python中继承的写法也很简单,在子类声明的括号中传父类即可,比如有一个类Ahuangge继承自Student类,编写代码如下所示。

class Ahuangge(Student):def __init__(self, name, age, core):super().__init__(name, age, core)def get_core(self):print("qwe")

在init中调用父类方法,然后重写get_core方法返回字符“qwe”,当然我们也可以添加自己的独有方法属性等,这里就不再一一展示了,我们知道如何继承一个类即可。

编码风格

和其他语言基本一致,Python中的类名应采用驼峰命名法 ,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。

对于每个类,都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要地描述类的功能,并遵循编写函数的文档字符串时采 用的格式约定。每个模块也都应包含一个文档字符串,对其中的类可用于做什么进行描述。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

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

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

相关文章

Linux系统——nginx服务介绍

一、Nginx——高性能的Web服务端 Nginx的高并发性能优于httpd服务 1.nginx概述 Nginx是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从2002年开始,第一次公开发布时间是2004年10月4日,版本…

第二证券:美国加息对中国股市的影响?美联储加息利好还是利空股市?

美国加息是一种紧缩的钱银政策,会招引出资者添加银行的出资,导致社会上的流动钱银减少,然后间接地导致股市流动资金减少,股市跌落,引起商场上的出资者恐慌,大量卖出,添加商场上的空方力量&#…

电路设计(25)——4位数字频率计的multism仿真及PCB设计

1.设计要求 使用4位数码管,显示输入信号的频率。完成功能仿真后,用AD软件,画出原理图以及PCB。 2.电路设计 输入信号的参数为: 可见,输入为168HZ,测量值为170HZ,误差在可接受的范围内。 3.PCB设…

分享Video.js观看Web视频流

界面效果 HTML结构 <div class"homePopup" ><div class"search_box animate__animated animate__fadeInDown" style"display: none;"><div class"van-search" style"background: rgba(0, 0, 0, 0);">&…

[服务器-数据库]MongoDBv7.0.4不支持ipv6访问

文章目录 MongoDBv7.0.4不支持ipv6访问错误描述问题分析错误原因解决方式 MongoDBv7.0.4不支持ipv6访问 错误描述 报错如下描述 Cannot connect to MongoDB.No suitable servers found: serverSelectionTimeoutMS expired: [failed to resolve 2408]问题分析 首先确定其是…

Android14 InputManager-InputReader的处理

IMS启动时会调用InputReader.start()方法 InputReader.cpp status_t InputReader::start() {if (mThread) {return ALREADY_EXISTS;}mThread std::make_unique<InputThread>("InputReader", [this]() { loopOnce(); }, [this]() { mEventHub->wake(); });…

Java SE 入门到精通—基础语法【Java】

敲重点&#xff01; 本篇讲述了比较重要的基础&#xff0c;是必须要掌握的 1.程序入口 在Java中&#xff0c;main方法是程序的入口点&#xff0c;是JVM&#xff08;Java虚拟机&#xff09;执行Java应用程序的起始点。 main方法的方法签名必须遵循下面规范&#xff1a; publ…

【力扣白嫖日记】1987.上级经理已离职的公司员工

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1978.上级经理已离职的公司员工 表&#xff1a;Employees 列名类型employee_idintnamevarcharmanager_idint…

DTV的LCN功能介绍

文章目录 LCN简介LCN获取LCN Conflict LCN简介 Logical Channel Number&#xff08;LCN&#xff09;是数字电视系统中用于标识和组织频道的逻辑编号。LCN的目的是为了方便用户浏览和选择频道&#xff0c;使得数字电视接收设备能够根据这些逻辑编号对频道进行排序和显示。 LCN…

学习大数据所需的java基础(5)

文章目录 集合框架Collection接口迭代器迭代器基本使用迭代器底层原理并发修改异常 数据结构栈队列数组链表 List接口底层源码分析 LinkList集合LinkedList底层成员解释说明LinkedList中get方法的源码分析LinkedList中add方法的源码分析 增强for增强for的介绍以及基本使用发2.使…

【成都游戏业:千游研发之都的发展与机遇】

成都游戏业&#xff1a; 千游研发之都的发展与机遇 作为我国西部游戏产业的龙头&#xff0c;成都这座城市正在高速发展&#xff0c;目标是崛起成为千亿级游戏研发之都。多年来&#xff0c;在政策扶持、人才汇聚以及文化底蕴等助力下&#xff0c;成都游戏业已经形成完整的产业链…

MyBatis--02-1- MybatisPlus----条件构造器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言AbstractWrapper 条件构造器官网文档https://baomidou.com/pages/10c804/#abstractwrapper](https://baomidou.com/pages/10c804/#abstractwrapper)![在这里插入…

安全这么卷了吗?北京,渗透,4k,不包吃住,非实习

起初某HR找人发了条招聘信息 看到被卷到4k一个月被震惊到了 随后发布了朋友圈&#xff0c;引起来众多讨论 对此网友发表众多评价 越来越卷的工作现象确实是一个普遍存在的问题 另外&#xff0c;也可以考虑和雇主沟通&#xff0c; 寻求更合理的工作安排&#xff0c; 或者…

[ 2024春节 Flink打卡 ] -- Paimon

2024&#xff0c;游子未归乡。工作需要&#xff0c;flink coding。觉知此事要躬行&#xff0c;未休&#xff0c;特记 Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合&#xff0c;推出新一代的 Streaming Lakehouse 技术&#xff0c;…

springboot访问webapp下的jsp页面

一&#xff0c;项目结构。 这是我的项目结构&#xff0c;jsp页面放在WEB-INF下的page目录下面。 二&#xff0c;file--->Project Structure,确保这两个地方都是正确的&#xff0c;确保Source Roots下面有webapp这个目录&#xff08;正常来说&#xff0c;应该本来就有&#…

Python in Visual Studio Code 2024年2月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 2024 年 2 月版 Visual Studio Code 的 Python 和 Jupyter 扩展已经推出&#xff01; 此版本包括以下公告&#xff1a; 默认安装的 Python 调试器扩展快速选择 Python 解释器中的“Create Environment”选项Jupyter 的内置变量查…

flink反压

flink反压&#xff08;backpressure&#xff09;&#xff0c;简单来说就是当接收方的接收速率低于发送方的发送速率&#xff0c;这时如果不做处理就会导致接收方的数据积压越来越多直到内存溢出&#xff0c;所以此时需要一个机制来根据接收方的状态反过来限制发送方的发送速率&…

Spring6学习技术|IoC|手写IoC

学习材料 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09; 有关反射的知识回顾 IoC是基于反射机制实现的。 Java反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&…

网页数据的解析提取(正则表达式----re库详解)

前面&#xff0c;我们已经可以用requests库来获取网页的源代码&#xff0c;得到HTML代码。但我们真正想要的数据是包含在HTML代码之中的。要怎样才能从HTML代码中获取想要的信息呢&#xff1f;正则表达式是一个万能的方法&#xff01;&#xff01;&#xff01; 目录 正则表达…

多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测

多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测 目录 多维时序 | Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于VMD-DBO-GRU、VMD-GRU、GRU的多变量时间序列预测…