「码动四季·开源同行」python语言:用户交互

张开发
2026/4/15 23:40:26 15 分钟阅读

分享文章

「码动四季·开源同行」python语言:用户交互
一、编程入门1.编程的概念我们学习一门编程语言需要先了解清楚什么是编程为什么要编程最后才学习怎么编程。计算机的发明就是为了用机器取代人力来帮助人类进行无休正的工作还不给他工资这就是编程的目的因为计算机听不懂人话那就是只好人来说计算机的话来传达给计算机这个工作应该如何进行人在说“机话”的过程其实就是编程是人类把我们需要工作的内容通过某种指令传达给计算机。2.编程语言的划分你说“机话”就行了难道说“机话”还有不同的。是的人话都各有千秋“机话”自然也是风情万种。上面所说的能被计算机所识别的表达方式就是编程语言语言是人与人之间沟通的介质编程语言是程序员与计算机沟通的桥梁。总结一下编程就是程序员按照某种编程语言我自己的工作流写下来结果就是一堆包含有字符数字或者英文字母的文件。需要注意的是在程序运行之前和普通的文件没有区别只有当程序运行了计算机才会按照该编程语言的语法格式读取里面的内容这样程序的内容才会生效才会有计算机工作的效果。编程语言发展到如今经历了三个过程分别是机器语言汇编语言和高级语言。机器语言可以理解为人完全说“机话”我们要先知道计算机的原理是二进制计算机他也就能看懂二进制了关于二进制后面的内容到字符编码会有详细的讲解那就用二进制编程吧比如我想让计算机计算一个100加200我要这样操作1100100,101011,11001000注释二进制1100100代表十进制的100二进制11001000代码十进制200二进制101011代码“”这个符号100200的计算用机器语言编写大概就是上面的代码我太年轻没出生在那个美好的时代。显而易见用这种方式编写程序对于程序员来说是十分痛苦的开发效率非常低下。相反对于计算机来说他一看到100100000这种东西就会心想“这个对我的胃口我就喜欢这样的”但是作为程序员的你并不能很轻松的写出这种东西。所以总结一下机器语言是人站在计算机的角度去编程编程开发效率低程序运行效率高。汇编语言可以理解为人说“机人话”就是人用简写的英文标识符去取代二进制这样的话人编写的效率肯定会提升了但是计算机的有点不乐意了不是直接的二进制要先把这个英文标识符转化成二进制进而才能执行代码。所以相比较机器语言来说汇编语言开发效率提升程序运行效率略微降低。高级语言可以理解为人说“人话”人终于能好好说话了之所以称他为高级是因为他与以上两种语言有本质的区别高级语言是建立在操作系统的基础之上而以上两种编程语言都是不需要操作系统直接操作硬件的。操作系统是人创造的他的出现目的就是提高人们的工作效率让人们更好的使用计算机由于操作系统的封装把操作的硬件的悲伤的工作留给了自己而让程序员的编程变得非常友好使用和自己的语言非常相似的语法格式去编程大大的提升了程序员的开发效率。相反计算机对于这件事有意见。接下来用一句话总结一下机器语言到汇编语言再到高级语言程序员开发效率提升的同时程序执行效率也降低了那么这是进步还是退步呢速度不是关键开发效率才是王道。因为速度有瓶颈机器语言到高级语言虽然速度降了但是依然快到人类的大脑意识无法捕捉出来差距0.000000001秒和0.00001秒对你来说应该没什么区别吧虽然他们相差了1万倍。开发效率可以大幅提升所以这样的发展自然是进步。二、高级语言的分类高级语言更贴近人类的语言他必须先被转换成能计算机能读懂的二进制后才能被执行按照转换的方式分为编译型语言和解释型语言编译型语言需要编译器就像谷歌翻译一样你写的代码就是一个程序在程序执行之前要先编译就像是把一本英文的书先翻译成中文再给你看编译的结果就转化成为了二进制之后计算机才可以运行。这样就带来了一个问题当程序需要修改的时候不能直接修改编译之后的目标文件而是要修改源文件再次编译生成目标文件这个时候计算机再运行查看修改的结果。由于不同的计算机的操作系统的不同编译器生成的目标文件也不相同不同的操作系统它所提供的硬件接口不同所以不同的硬件接口就需要不同的二进制文件来执行。和解释型语言相比较他的执行速度快要依赖编译器重点是调试很麻烦。像C语言C都是编译型语言。解释型语言需要解释器就像口译一样需要一句一句的翻译应用程序源代码一边由相应语言的解释器“翻译”成目标代码机器语言一边执行因此效率比较低而且不能生成可独立执行的可执行文件应用程序不能脱离其解释器(想运行必须先装上解释器就像跟老外说话必须有翻译在场)但这种方式比较灵活可以动态地调整、修改应用程序。像PythonPhp都是解释型语言。编译型语言与解释型语言的执行过程总结编译型语言和解释型语言各有其优缺点当我们需要编写的程序不需要经常改动或者升级的时候我们一般会选用编译型语言比如写操作系统或者其他的一些比较底层的应用当我们编写的程序需要经常改动升级以此来满足用户的新的需求的时候我们一般会选用解释型语言比如一些应用软件一些网站项目。值得一提的是Python语言由于他的简洁性与高度封装在解释型语言里面依然是属于调试最方便使用最灵活的所以当项目需要快速开发和迭代的时候公司里面很多新项目一般会选用Python语言既可以写移动应用的接口也可以写Web项目还可以非常方便地进行比较复杂的机器学习数据挖掘的运算等等所以这也是Python语言比较火热的原因之一。三、Python介绍官网地址Download Python | Python.org1.Python语言说明python的创始人为吉多·范罗苏姆Guidovan Rossum。1989年的圣诞节期间Guido开始写能够解释Python语言语法的解释器。Python这个名字来自Guido所挚爱的电视剧Monty PythonsFlyingCircus。他希望这个新的叫做Python的语言能符合他的理想创造一种C和shell之间功能全面易学易用可拓展的语言。最新的TIOBE排行榜Python赶超C占据第4Python崇尚优美、清晰、简单是一个优秀并广泛使用的语言。Python可以应用于众多领域如数据分析、组件集成、网络服作有务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python如Youtube、Dropbox、BT、Quora中国知乎、豆瓣、知乎、Google、Yahoo、Facebook、NASA、百度、腾讯、汽车之家、美团等。2.Python应用领域1、网站开发能够最快上手的Web框架Django短小精悍的Flask框架能够适用于创业型公司快速建立产品业务逻辑。2、网络编程支持高并发的Twisted网络框架使异步编程变的非常简单。3、爬虫开发爬虫领域Python几乎是霸主地位Scrapy\Request\BeautifuSoap\urllib等可以轻松爬取几乎网上所有的资源。4、云计算开发目前最知名的开源云计算框架OpenStack就是用Python语言编写的这也极大的推动了云计算行业的发展。5、人工智能谁会成为AI和大数据时代的第一开发语言这已是一个不需要争论的问题。过去人们会使用MATLABOctave等语言来做科学计算但是落地到应用开发上还是用使用CJavaR或者Python但是现在Python有开源的 PyTorch 和TensorFlow它作为Al时代头牌语言的位置基本确立未来的悬念仅仅是谁能坐稳第二把交椅。6、自动化运维问问中国的每个运维人员运维人员必须会的语言是什么就算你问10个人相信他们都会给你一个相同的答案它的名字叫Python7、金融分析金融分析公司写的很多分析程序、高频交易软件就是用的Python,到目前Python是金融分析、量化交易领域里用的最多的语言8、科学运算你知道么97年开始NASA就已在大量使用Python在进行各种复杂的科学运算随着NumPySciPyMatplotlibEnthoughtlibrarys等众多程序库的开发使得Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比Python是一门通用的程序设计语言比Matlab所采用的脚本语言的应用范围更广泛9、游戏开发在网络游戏开发中Python也有很多应用。相比LuaorCPython比Lua有更高阶的抽象能力可以更少的代码描述游戏业务逻辑与Lua相比Python更适合作为一种Host语言即程序的入口点是在 Python那一端会比较好然后用C/C在非常必要的时候写一些扩展。Python非常适合编写1万行以上的项目而且能够很好地把网游项目的规模控制在10万行代码以内。另外据我所知知名的游戏文明就是用Python写的3.Python在公司的应用谷歌GoogleApp Engine、code.google.com、Google earth、谷歌爬虫、Google告等项目都在大量使用Python开发CIA美国中情局网站就是用Python开发的NASA美国航天局(NASA)大量使用Python进行数据分析和运算YouTube:世界上最大的视频网站YouTube就是用Python开发的Dropbox:美国最大的在线云存储网站全部用Python实现每天网站处理10亿个文件的上传和下载Instagram:美国最大的图片分享社交网站每天超过3千万张照片被分享全部用python开发Facebook:大量的基础库均通过Python实现Redhat世界上最流行的Linux发行版本中的yum包管理工具就是用python开发豆瓣公司几乎所有的业务均是通过Python开发知乎国内最大的问答社区通过Python开发(国外Quora)春雨医生国内知名的在线医疗网站是用Python开发除上面例举之外还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。4.使用Python2还是Python3目前虽然业内很多企业还在大量使用Python2.6or2.7因为旧项目几十万甚至上百万行的代码想快速升级到3.0不是件容易的事但是大家在开发新项目时几乎都会使用3.x。另外Python3 确实想比2.x做了很多的改进直观点来讲就像从XP升级到Win7的感觉一样棒棒的。Python2和Python3的具体细节区别我们在以后课程中会慢慢深入。5.安装Python解释器Python目前已支持所有主流操作系统在Linux,Unix,Mac系统上自带Python环境在Windows系统上需要安装一下超简单官网地址Python Releases for Windows | Python.org安装过程中需要注意的点测试安装是否成功windows一-运行一-输入cmd然后回车弹出cmd程序输入python,如果能进入交互环境见下图代表安装成功。多版本共存演示 注意在安装目录下找到python.exe,拷贝一份命名为python2.exe或python3.exe一定要保留原版因为pip工具会调用它。6.写程序的两种方式进入解释器的交互式模式调试方便无法永久保存代码脚本文件的方式使用nodpad演示永久保存代码PS:Notepad是Windows操作系统下的一套文本编辑器(软件版权许可证GPL)有完整的中文化接口及支持多国语言编写的功能在百度中输入Notepad即可进行下载强调_python解释器执行程序是解释执行即打开文件读内容因此文件的后缀名没有硬性限制但通常定义为.py结尾用Python写一个HelloWorld程序print(Hello world)比较一下其他语言HelloWorld的写法#C #include iostream int main (void) { std::coutHello world; } #C #include stdio.h int main (void) { printf(\nhello world!) ; return 0; } #JAVA public class Helloworld{ //程序的入口 public static void main(string args[]){ /向控制台输出信息 System.out.println(Hello world!) ; } } # PHP ?php echo hello world!; ? #GO package main import fmt func main() { fmt.Printf(Hello World!\n God Bless You!); } #精通各种语言的hello world安装Python专用IDEPycharm为何要用IDE到现在为止我们也是写过代码的人啦但你有没有发现每次写代码要新建文件、写完保存时还要选择存放地点执行时还要切换到命令行调用python解释器好麻烦呀能否一气呵成让我简单的写代码此时开发工具IDE上场啦一个好的IDE能帮你大大提升开发效率。很多语言都有比较流行的开发工具比如JAVA的EclipseC#C的VisualStudioPython的是啥呢Pycharm最好的Python开发IDE安装下载地址:Download PyCharm: The Python IDE for data science and web development by JetBrains选择Professional专业版进入Pycharm官网根据提示下载专业版即可Comunnity社区版是免费的但支持的功能不多所以还是用专业版。注册完成后启动会让你先创建一个项目其实就是一个文件夹我们以后的代码都存在这里面。安装教程参考python环境搭建和pycharm的安装配置及汉化零基础小白版_pycharm配置python运行环境-CSDN博客四、变量与常量1.变量的概念计算机工作的过程直白讲就是对数据的增、删、改、查操作那么数据一定是变化的我们要存储变化的数据就应该用“变量”。什么是变量变量即变化的量核心是“变”与“量”二字变即变化量即衡量状态。为什么要有变量程序执行的本质就是一系列状态的变化变是程序执行的直接体现所以我们需要有一种机制能够反映或者说是保存下来程序执行时的状态以及状态的变化。#比如英雄的等级为1打怪升级(变)为10僵尸的存活状态True被植物打死了于是变为False人的名字为Albert也可以修改为AlbertMa。Python如何定义变量变量名(相当于门牌号指向值所在的空间等号变量值是从右到左赋值。nameAlbert sexmale age18 level102.Python变量的定义规范变量名只能是 字母、数字或下划线的任意组合变量名的第一个字符不能是数字以下关键字不能成为变量名[andasassertbreak,classcontinuedef,del,elifelseexcept,exec,finallyforfromglobalifimportinislambdanotorpassprintraise,returntrywhilewithyield]3.Python变量定义方式:驼峰体驼峰式命名法就是当变量名或函式名是由一个或多个单词连结在一起。驼峰体分两种大驼峰所有单词首字母全都大写AgeOfTeacher小驼峰除第一个单词外其他所有单词首字母大写 ageOfTeacher。#大驼峰 AgeOfAlbert 18 NumberOfstudents 80 #小驼峰 ageOfTeacher 28下划线(推荐使用age_of_albert 18 number_of_students 80定义变量名不好的方式1.变量名为中文、拼音2.变量名词不达意3.变量名用中文Python居然支持用中文做变量名这真是颠覆了我的世界观也许就是为了照顾我国一些程序猿而做的优化吧值得一提的是在公司里项目很大的时候我们往往会命名的变量名比较长这是一方面是为了变量名不重复另一方面是为了能看到变量名就知道数据的含义有一句话给大家变量即逻辑定义变量会有id唯一标识号type变量类型value变量值)等号比较的是valueis比较的是id强调1.id相同意味着type和value必定相同2.value相同type肯定相同但id可能不同如下xInfo Albert:l8 yInfo Albert:l8 x y True x is y False如果自己用电脑终端或者Pycharm测试可能会出现xisy结果是True的情况不用担心这是Pycharm或者终端环境做的内存优化当变量比较长的时候就没问题了。4.常量常量即指不变的量如pai3.141592653..或在程序运行过程中不会改变的量举例日本首相的年龄是一个变量加入他今天突然挂了那么这个年龄就不会在改变了那就是常量。在Python中没有一个专门的语法代表常量程序员约定俗成用变量名全部大写代表常量JAPANESE PRIME MINISTER AGE 56在c语言中有专门的常量定义语法constintcount60一旦定义为常量更改即会报错五、基本数据类型1.说明Python属于强类型的动态脚本语言不允许不同类型相加动态定义变量不用数据类型声明且确定一个变量的类型是第一次给他赋值的时候2.字符串str)刚才我们定义人名使用的是 nameAlbert 来定义的形如 或者 或者 单引号双引号或者三引号中间写内容的这种定义方式就是str类型我们叫做字符串类型print(Hello world) #这就是一个字符串类型定义的时候是把等号右侧赋值给等号左侧的变量我们不仅要知道他的数据类型是str在学习一个数据类型的时候还要知道他是一个可变类型还是不可变类型。不可变类型当变量值改变的时候id也会一起变化相当于重新开辟一块内存空间给变量重新赋值原来的值是不可变的str就是一个不可变类型可变类型当变量值改变的时候id可以保持不变就相当于是在原来的基础上修改位置还是没有变可变类型可以理解为一个大房子的地方不动给这个房子装修一下就是做了修改而不可变类型就是这个房子不能重新装修你要改可以你在别的地方再盖一个房子你再住进去。3.整型 (int)我们定义一个人的年龄的时候 使用age18 来定义的等号后面直接十整数数字那么这个变量的数据类型就是int类型我们叫整型整形是一个不可变类型4.浮点型 (float)当我们定一个人的身高的时候使用height1.83 来定义同理这是float类型我们叫浮点型浮点型是一个不可变类型浮点型直观意义上来讲就是需要把值精确到小数的变量。5.列表list)当我们需要存储一个班级里面所有学生的名字的时候就是用一个变量来存储多个值以上三种数据类型都只能存储一个值这种情况我们可以只用ist这种数据类型来完成我们叫列表。定义形式中括号内多个元素用逗号分割每个元素可以是任意的数据类型列表是一个可变类型names[albertjameskebo] #存储一个班级的多个学生 information [albert181.83] #存储一个人信息 #存储多人信息 infrmations [[albert181.83][james342.03][kebo401.98]]6.元组 (tuple)另外一种和list类似的数据类型是tuple我们叫元组他的用法和list非常相似只是列表可以修改而元组不能修改只能查看他的定义方式是小括号内多个元素用逗号分割每个元素可以是任意的数据类型。以上代码中括号改成小括号就可以了注意是英文的小括号元组是一个不可变类型7.字典(dict)上面代码存储多个人的信息的时候你们大概的能看出来我是存储的每个人的姓名年龄和身高但是不明确我们不能用猜的要解决这个问题就是定义的时候就说明白这个时候字典来了定义形式花括号内多个元素用逗号分割每个元素按照keyvalue的形式需要注意的是字典的key只能用不可变类型我们一般使用字符串字典是一个可变类型。information {name:albertage:18height:1.83} # 存储一个人信息 informations [ {name:albertage:18height:1.83}, {name:jamesage:34height:2.03}, {name:keboage:40height:1.98} ] #存储多人信息8.集合(set)在NBA有400多位球员如果我们不考虑先后顺序要存储这400多位球员肯定是不能重复的每位球员只能算一个上面的列表和元组是可以重复的我们只需要知道“AIbert”肯定是不在这里面的就可以了。定义形式花括号内多个元素用逗号分割每个元素可以是任意的数据类型但是不能重复集合是一个可变类型。NBA_players {James, Kobe, Jordan, }9.布尔Bool)在NBA中有众多的球员但是有的人可能一辈子也打不了NBA了如果我们想要判断一个人是否是NBA球员就可以用布尔类型它只有两个值True和False。10.补充(非常重要关于变量的命名在这里做一点补充这虽然简单但是非常重要。推荐大家使用『匈牙利命名法』这也是在工作中最为规范的变量命名方式有些时候看一个人写的代码只需要看他写的变量名就能粗略判断出他的水平了。简而言之匈牙利命名法就是把变量的『类型』缩写放到变量名的最前面。关键在于这里说的变量『类型』指的是那些和你的代码业务逻辑相关的类型。比如在你的代码中有两个变量students和teachers他们分别代表的是用来存储学生的集合与用来存储老师的列表使用『匈牙利命名法』后可以把这两个名字改写成这样students - set_students teachers - list_teachers很多情况下使用『匈牙利命名法』是个不错的主意因为它可以改善你的代码可读性尤其在那些变量众多、同一类型多次出现时注意不要滥用就好。六、注释随着学习的深入用不了多久你就可以写复杂的上千甚至上万行的代码啦有些代码你花了很久写出来过了些天再回去看发现竟然看不懂了这太正常了。另外你以后在工作中会发现一个项目多是由几个甚至几十个开发人员一起做你要调用别人写的代码别人也要用你的如果代码不加注释你自己都看不懂更别说别人了这是会挨打的。所以为了避免这种尴尬的事情发生一定要增加你代码的可读性。#号后边的任何数据在代码运行的阶段不会被输出者代码注释分为三种1.单行注释注释单独占一行以#开头打一个空格后面写注释的内容a 1 # a 1 这就是注释的#使用方式2.行内注释在代码尾部打两个空格然后打一个#接着再打一个空格后面写注释的内容。a 1 # 行内注释3。多行注释可以用三对双引号 注释内容 或者三对单引号中间写注释内容和明显多行注释就是可以注释多行当你的注释比较长的使用写很长的一行不便于阅读这时我们推荐使用多行注释。 helloworld! 代码注释的原则不用全部加注释只需要在自己觉得重要或不好理解的部分加注释即可注释可以用中文或英文但不要用拼音也不要用中英文混杂注意(非常重要注释你们现在可能谁都会写但其实在工作中除了一些高标准的公司之外能够规范写注释的人非常少写注释和写规范的注释是代表一位程序员编程素养的最简单的方式。七、文件头注意既然是文件头那么自然是要放在文件顶部这也是开发规范的一些细节一特#/usr/bin/env python # 指定解释器 # -*- codingutf-8 -*- #指定文件字符编码如果每次写代码我们都自己去写的话有点浪费时间我们可以自己先在Pycharm上面配置好以后每次新建一个文件自动就会添加文件头。MacOS系统的用户可以按照先点击Pycharm左上角按照Pycharm--Preferences--Editor--File and Code Templates--Python Script 的顺序找到一块空白的区域把以下代码粘贴进去Windows系统的用户可以按照File--Settings--Editor--File and Code Templates--Python Script执行同样的操作。注意作者那一行代码可以改成你自己的名字。#/usr/bin/env python # -*- coding: utf-8 -*- # Time $ { DATE } $ { TIME } # Author Albert # File ${NAME}.py八、实现用户交互很早以前我们去银行取钱需要有一个银行业务员等着我们把自己的账号密码输入给他然后他去进行验证成功后我们再将取款金额输入/告诉他骄傲的现代人会为客户提供一台ATM机就是一台计算机让ATM机跟用户交互从而取代人力。然而机器是死的我们必须为其编写程序来运行这就要求我们的编程语言中能够有一种能与用户交互接收用户输入数据的机制。用户交互就是程序等待用户输入数据之后在执行下一步的程序我们使用input来完成这个操作。name input (请输入姓名) #我把输入的内容赋值给name这个变量 print( 你好 name) #当用户输入完成自己的姓名之后就会打印出来你好XXXPython2 与Python3 的区别在python3中input用户输入任何值都存成字符串类型·在python2中input用户输入什么类型就存成什么类型Python2 中的raw_input等于python3的input需要注意的是当需要输入一个数字的时候考虑到我们会用这个数字做计算而Python3的input会默认转成str所有我们需要把用户输入的数据转化成intage input (请输入年龄) age int (age) # 把字符串age转化成int类型age用于计算

更多文章