不破不立,那些年错过的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日,版本…

CSS基础和选择器

【一】CSS基础 【1】什么是CSS CSS(层叠样式表)是一种用于描述HTML(超文本标记语言)文档外观样式的语言。它通过定义样式规则来控制网页的布局、字体、颜色、背景等外观效果,使网页变得更加美观和可读。 【2】注释语…

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

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

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

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

C++ 和 C#的区别

如是我闻: C#(发音为 “C sharp”)和C是两种流行的编程语言,它们各有特点和用途。下面是这两种语言的一些主要区别: 设计理念和用途: C: 是一种多范式编程语言,支持过程化编程、面向对象编程、泛型编程等。…

小程序怎么开发?怎么开发自己的小程序

一、明确需求与定位 在开发小程序之前,需要明确需求. 首先,明确小程序的定位非常重要。我们需要确定小程序是为了提供便捷的购物体验还是特定领域的服务。明确定位可以帮助我们更好地设计和优化小程序的功能,以符合用户的期望和需求。 其次…

VIO第3讲:基于优化的IMU与视觉信息融合之视觉残差雅可比推导

VIO第3讲&#xff1a;基于优化的IMU与视觉信息融合之视觉残差函数构建 文章目录 VIO第3讲&#xff1a;基于优化的IMU与视觉信息融合之视觉残差函数构建3 视觉重投影残差的 Jacobian3.1 视觉重投影残差① 估计值&#xff08;预测值&#xff09;<1> 推导<2> 引出因子…

分享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);">&…

物业第三方满意度调查抽样方法有哪些

本文由群狼调研&#xff08;湖南售楼中心神秘顾客&#xff09;出品&#xff0c;欢迎转载&#xff0c;请注明出处。在物业服务行业中&#xff0c;了解业主的需求和满意度至关重要。随着市场竞争的加剧&#xff0c;越来越多的物业公司选择通过第三方来进行满意度调查。物业第三方…

[服务器-数据库]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…

模式匹配算法汇总

单模匹配算法 1. KMP算法 动态规划之 KMP 算法详解 彻底搞懂KMP算法原理 多模匹配 1. AC自动机

DTV的LCN功能介绍

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

【Elasticsearch专栏 02】深入探索:Elasticsearch为什么使用倒排索引而不是正排索引

文章目录 为什么使用倒排索引而不是正排索引&#xff1f;1.正排索引&#xff08;Forward Index&#xff09;2.倒排索引&#xff08;Inverted Index&#xff09;3.小结 为什么使用倒排索引而不是正排索引&#xff1f; Elasticsearch选择使用倒排索引而不是正排索引&#xff0c;…

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

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

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

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

C++从入门到精通 第十六章(STL常用算法)

写在前面&#xff1a; 本系列专栏主要介绍C的相关知识&#xff0c;思路以下面的参考链接教程为主&#xff0c;大部分笔记也出自该教程&#xff0c;笔者的原创部分主要在示例代码的注释部分。除了参考下面的链接教程以外&#xff0c;笔者还参考了其它的一些C教材&#xff08;比…

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

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