人工智能基础及应用(工科通识版)全套课件 第1-10章 人工智能导引 -人工智能研究热点与发展趋势_第1页
人工智能基础及应用(工科通识版)全套课件 第1-10章 人工智能导引 -人工智能研究热点与发展趋势_第2页
人工智能基础及应用(工科通识版)全套课件 第1-10章 人工智能导引 -人工智能研究热点与发展趋势_第3页
人工智能基础及应用(工科通识版)全套课件 第1-10章 人工智能导引 -人工智能研究热点与发展趋势_第4页
人工智能基础及应用(工科通识版)全套课件 第1-10章 人工智能导引 -人工智能研究热点与发展趋势_第5页
已阅读5页,还剩459页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工智能导引第一章目录02人工智能的特征Characteristicsofartificialintelligence01人工智能简介IntroductiontoArtificialIntelligence04人工智能研究内容Artificialintelligenceresearchcontent05人工智能研究方向Artificialintelligenceresearchdirection03人工智能参考框架ArtificialIntelligenceFrameofReference人工智能简介IntroductiontoArtificialIntelligence3011.1.1人工智能背景4人工智能的概念诞生于1956年,经过半个多世纪的发展,受智能算法、计算速度、存储水平等多方面因素的影响,人工智能技术与应用经历了多次高潮和低谷。2006年以来,深度学习在机器视觉、语音识别等领域获成功,引起广泛关注。云计算、大数据等技术提升运算速度,降低计算成本,为AI提供数据资源。AI发展模式演进,从计算机模拟向人机结合的混合智能系统转变,形成群体智能系统,带来新机遇。41.1.2人工智能历史5人工智能的发展经过了多次高潮和低估,如图所示,其发展大致分为三个阶段:51.1.2人工智能历史620世纪50年代-80年代第一阶段这一阶段,人工智能正处于萌芽期。随着抽象数学推理和可编程数字计算机的出现,人们开始将人类智能的思维过程转化为计算机程序,旨在实现人工智能的目标。同时,随着计算任务的复杂性不断增加,人工智能的发展也逐渐遇到了瓶颈。由于计算资源有限,早期的计算机无法满足复杂问题的需求,而且很多问题的解决过程需要耗费大量的时间和空间。1956年,“人工智能”这个词首次出现在达特茅斯会议上,标志着其作为一个研究领域的正式诞生。六十年来,人工智能发展潮起潮落的同时,基本思想可大致划分为四个流派:符号主义(Symbolism)、连接主义(Connectionism)、行为主义(Behaviourism)和统计主义(Statisticsism)。这四个流派从不同方面抓住了智能的特征,在“制造”人工智能方面都取得了里程碑式的成就。1959年,ArthurSamuel提出了机器学习,机器学习将传统的制造智能演化为通过学习能力来获取智能,推动人工智能进入了第一次繁荣期。20世纪70年代末期专家系统的出现,实现了人工智能从理论研究走向实际应用,从一般思维规律探索走向专门知识应用的重大突破,将人工智能的研究推向了新高潮。然而,机器学习的模型仍然是“人工”的,也有很大的局限性。随着专家系统应用的不断深入,专家系统自身存在的知识获取难、知识领域窄、推理能力弱、实用性差等问题逐步暴露。从1976年开始,人工智能的研究进入长达6年的萧瑟期。61.1.2人工智能历史7第二阶段20世纪80年代-90年代末在这一阶段,专家系统得到快速发展,数学模型有重大突破,但由于专家系统在知识获取、推理能力等方面的不足,以及开发成本高等原因,人工智能的发展又一次进入低谷期。在20世纪80年代中期,随着美国、日本立项支持人工智能研究,以及以知识工程为主导的机器学习方法的发展,出现了具有更强可视化效果的决策树模型和突破早期感知机局限的多层人工神经网络,由此带来了人工智能的又一次繁荣期。然而,当时的计算机难以模拟复杂度高及规模大的神经网络,仍有一定的局限性。1987年,由于LISP机市场崩塌,美国取消了人工智能预算,日本第五代计算机项目失败并退出市场,专家系统进展缓慢,人工智能又进入了萧瑟期。71.1.2人工智能历史8第三阶段20世纪90年代末至今随着大数据的积聚、理论算法的革新、计算能力的提升,人工智能在很多应用领域取得了突破性进展,迎来了又一个繁荣时期。1997年,IBM深蓝(DeepBlue)战胜国际象棋世界冠军GarryKasparov。这是一次具有里程碑意义的挑战,它代表了基于规则的人工智能的成功。2006年,在Hinton和他的学生的推动下,深度学习开始备受关注,为后来人工智能的发展带来了重大影响。从2010年开始,人工智能进入爆发式的发展阶段,其最主要的驱动力是大数据时代的到来,运算能力及机器学习算法得到提高。人工智能快速发展,产业界也开始不断涌现出新的研发成果:2011年,IBMWaston在综艺节目《危险边缘》中战胜了最高奖金得主和连胜纪录保持者。2012年,谷歌大脑通过模仿人类大脑在没有人类指导的情况下,利用非监督深度学习方法从大量视频中成功学习到识别出一只猫的能力。2014年,微软公司推出了一款实时口译系统,可以模仿说话者的声音并保留其口音;同年,微软公司发布全球第一款个人智能助理微软小娜。2014年,亚马逊发布至今为止最成功的智能音箱产品Echo和个人助手Alexa。81.1.2人工智能历史9第三阶段20世纪90年代末至今2016年,谷歌DeepMind开发的AlphaGo机器人在围棋比赛中击败了世界冠军李世石。2017年,苹果公司在原来个人助理Siri的基础上推出了智能私人助理Siri和智能音响HomePod。2022年,OpenAI发布ChatGPT3.5,该模型相比于之前的版本有更大的规模,拥有更多的参数和更广泛的训练数据。这使得它在语言理解和生成方面具有更高的能力,可以处理更加复杂和多样化的任务和语境。2023年,OpenAI发布ChatGPT4.0,能够同时处理文本数据与图像数据,具有更高的可靠性与更强的理解能力。2024年,OpenAI发视频大模型Sora,能够根据文本描述,生成长达60秒的视频,其中包含精细复杂的场景、生动的角色表情以及复杂的镜头运动。人工智能发展历程2024年,我国《政府工作报告》中,“人工智能+”作为新的发展战略被正式提出。《政府工作报告》强调,要深化大数据、人工智能等技术的研发应用,开展“人工智能+”行动,以打造具有国际竞争力的数字产业集群。这一战略不仅凸显了人工智能在数字经济创新发展中的重要性,更揭示了其与新质生产力之间的紧密联系。91.1.3人工智能的定义10人工智能作为一门前沿交叉学科,百度百科定义人工智能是“研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学”,将其视为计算机科学的一个分支,指出其研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。10人工智能的定义对人工智能学科的基本思想和内容做出了解释,即围绕智能活动而构造的人工系统。人工智能是知识的工程,是机器模仿人类利用知识完成一定行为的过程。根据人工智能是否能真正实现推理、思考和解决问题,可以将人工智能分为弱人工智能和强人工智能。1.1.3人工智能的定义11弱人工智能指具有有限智能表现的系统,无法真正推理和解决问题,无自主意识。针对特定任务设计,表现优秀但受限。迄今的人工智能系统均为弱人工智能,通过模式识别和数据分析等技术实现特定任务。主流研究集中于此,语音识别、图像处理、机器翻译等方面取得显著进步。语音助手、推荐系统、自动驾驶汽车等均属此范畴,在特定领域展现智能,但缺乏跨领域智能和自我意识。111.1.3人工智能的定义12强人工智能强人工智能指具有与人类相当或超越人类的智能水平的人工智能系统,能处理复杂任务、理解、学习和推理,分为类人与非类人两类。达到人类水平、能自适应应对外界环境挑战、具有自我意识的人工智能称为“通用人工智能”、“强人工智能”或“类人智能”。强人工智能在哲学上存在巨大争论,技术上具有极大挑战性,当前鲜有进展,未来几十年内难以实现。靠符号主义、连接主义、行为主义和统计主义四流派路线制造强人工智能,主流看法认为目前仅是量变,人类对自身智能认识初级阶段,不可能制造出强人工智能。12人工智能的特征Thecharacteristicsofartificialintelligence13021.2人工智能的特征14人工智能系统须以人为中心,由人设计、构建、控制,运行于程序逻辑和软件算法上,通过硬件载体操作。其本质在于计算,形成信息流和知识模型,提供延伸人类能力的服务,模拟人类智能行为,处理复杂任务和问题。人工智能系统应具备感知环境能力,可通过传感器实现。传感器类似人类感知器官,接收环境信息。系统据此反应,包括文字、语音等,可控制执行机构影响环境或与人互动。交互方式促进人机合作。理想情况下,AI系统应具备自适应和学习能力,能随环境、数据或任务变化而调节参数或更新模型。这使其能不断适应变化环境,并通过云、端、人、物等数字化连接扩展。连接扩展使AI能与各种客体和主体交互演化,具备适应性、鲁棒性、灵活性和扩展性,以应对多变环境和需求。14由人类设计,为人类服务,本质为计算,基础为数据010203能感知环境,能产生反应,能与人交互,能与人互补有适应特性,有学习能力,有演化迭代,有连接扩展人工智能参考框架IntelligenceReferenceFramework1503

1.3人工智能参考框架16如图

人工智能参考框架:161.3人工智能参考框架170302

人工能参考框架0105070406基础设施提供者信息提供者信息处理者系统协调者安全、隐私、伦理管理

智能产品及行业应用171.3人工智能参考框架1801基础设施提供者基础设施提供者为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。计算能力由智能芯片(CPU、GPU、ASIC、FPGA等硬件加速芯片以及其它智能芯片)等硬件系统开发商提供;与外部世界的沟通通过新型传感器制造商提供;基础平台包括分布式计算框架提供商及网络提供商提供平台保障和支持,即包括云存储和计算、互联互通网络等。02信息提供者信息提供者在人工智能领域是智能信息的来源。通过知识信息感知过程由数据提供商提供智能感知信息,包括原始数据资源和数据集。原始数据资源的感知涉及到图形、图像、语音、文本的识别,还涉及到传统设备的物联网数据,包括已有系统的业务数据如力、位移、液位、温度、湿度等感知数据。181.3人工智能参考框架1903信息处理者信息处理者是指人工智能领域中技术和服务提供商。信息处理者的主要活动包括智能信息表示与形成、智能推理、智能决策及智能执行与输出。智能信息处理者通常是算法工程师及技术服务提供商,通过计算框架、模型及通用技术,例如一些深度学习框架和机器学习算法模型等,这些框架能够对功能进行支撑。04系统协调者系统协调者提供人工智能系统必须满足的整体要求,包括政策、法律、资源和业务需求,以及为确保系统符合这些需求而进行的监控和审计活动。由于人工智能是多学科交叉领域,需要系统协调者定义和整合所需的应用活动,使其在人工智能领域的垂直系统中运行。系统协调者的功能之一是配置和管理人工智能参考框架中的其他角色来执行一个或多个功能,并维持人工智能系统的运行。191.3人工智能参考框架2005安全、隐私、伦理安全、隐私、伦理覆盖了人工智能领域的其他4个主要角色,对每个角色都有重要的影响作用。同时,安全、隐私、伦理处于管理角色的覆盖范围之内,与全部角色和活动都建立了相关联系。在安全、隐私、伦理模块,需要通过不同的技术手段和安全措施,构筑全方位、立体的安全防护体系,保护人工智能领域参与者的安全和隐私。06管理管理角色承担系统管理活动,包括软件调配、资源管理等内容,管理的功能是监视各种资源的运行状况,应对出现的性能或故障事件,使得各系统组件透明且可观。2007智能产品及行业应用智能产品及行业应用指人工智能系统的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防等。人工智能研究内容Researchcontentofartificialintelligence21041.4.1研究领域22知识表示是指将关于世界的知识以适合计算机程序处理的形式进行表示和存储的过程。这些知识可以是关于事实、规则、概念、关系等各种形式的信息。知识表示的目的是使计算机能够理解和推理出解决问题所需的信息,从而实现智能行为。知识表示方法包括符号表示法、连接机制表示法。机器感知是指让计算机系统通过麦克风、摄像头、键盘、传感器等感知设备,以类似于人类感官的方式,收集和获取外部环境中的各种信息和数据。这些感知数据可以是声音、图像、文本、传感器数据等多种形式。机器思维机器思维是指使计算机系统能够模拟和执行类似于人类思维过程的能力。这种能力包括理解问题、推理、解决问题、学习和决策等。机器思维的目标是让计算机系统具备像人类一样的智能和思考能力,从而能够自主地执行复杂的任务和解决各种问题。机器学习的目标是让计算机系统通过学习数据中的模式和规律,从而能够自动地做出预测、决策和行动,在机器学习中,计算机系统通过使用各种算法和模型来分析和处理数据,从而发现数据中的模式和规律。这些模式和规律可以用于进行预测、分类、聚类、优化等任务。机器行为机器行为指的是计算机系统通过对外部环境的感知、推理和决策,以及对这些信息的处理和反馈,从而实现类似于人类行为的活动和动作。机器行为可以包括各种形式的动作和交互,如运动、操作、语言交流、决策等。知识表示机器感知机器学习221.4.2人工智能算法及分类23根据学习模式分类23监督学习:监督学习是一种利用已标记的有限训练数据集的学习方法,通过某种学习策略或方法建立一个模型,以实现对新数据或实例的标记(分类)或映射。在监督学习中,训练样本的分类标签是已知的,这些标签的准确度和代表性直接影响着学习模型的性能。典型的监督学习算法包括回归和分类,它们在自然语言处理、信息检索、文本挖掘、手写体识别、垃圾邮件检测等领域得到了广泛应用。无监督学习:无监督学习是一种利用无标记的有限数据描述隐藏在未标记数据中的结构或规律的学习方法。在无监督学习中,不需要训练样本和人工标注数据,这使得该方法能够更好地压缩数据存储、减少计算量、提升算法速度,并避免了由正负样本偏移引起的分类错误问题。无监督学习的典型算法包括单类密度估计、单类数据降维、聚类等,它们在经济预测、异常检测、数据挖掘、图像处理、模式识别等领域中发挥着重要作用。1.4.2人工智能算法及分类2424传统机器学习:传统机器学习涉及从一系列观测样本出发,旨在揭示那些无法通过原理分析获得的规律,以便准确地预测未来数据的行为或趋势。这种学习方法包括了多种算法,如逻辑回归、隐马尔科夫方法、支持向量机、K近邻、人工神经网络、Adaboost算法、贝叶斯方法以及决策树方法等。传统机器学习方法在有效性和模型可解释性之间取得了平衡,为解决有限样本学习问题提供了框架。深度学习:深度学习是一种建立深层结构模型的学习方法,其中包括深度置信网络、卷积神经网络、受限玻尔兹曼机和循环神经网络等典型算法。深度学习又称为深度神经网络,指的是层数超过3层的神经网络。它作为机器学习领域的新兴分支,由Hinton等人于2006年提出。深度学习起源于多层神经网络,其核心思想是将特征表示和学习合二为一。与传统机器学习相比,深度学习放弃了可解释性,专注于学习的效果。根据学习方法分类1.4.2人工智能算法及分类25根据学习性质分类25主动学习:主动学习通过一定的算法查询最有用的未标记样本,并交由专家进行标记,然后用查询到的样本训练分类模型来提高模型的精度。其特点是在学习过程中,算法能够选择性地获取最有益的数据样本进行标注,以提高学习效率。相较于传统的被动学习方式,主动学习可以显著减少标注成本,并且在数据标注困难或昂贵的情况下尤为有用。迁移学习:迁移学习是指当在某些领域无法取得足够多的数据进行模型训练时,利用另一领域数据获得的关系进行的学习。迁移学习可以把已训练好的模型参数迁移到新的模型指导新模型训练,可以更有效的学习底层规则、减少数据量。目前的迁移学习技术主要在变量有限的小规模应用中使用,如基于传感器网络的定位,文字分类和图像分类等。演化学习:演化学习是一种启发式优化方法,其灵感源自生物进化的过程。在演化学习中,借鉴了生物进化的概念,通过模拟进化的过程来优化解决问题的方法或模型。这种方法通过生成、评估和迭代改进解决方案的过程,逐步改进和优化模型或算法,以解决复杂的优化问题。人工智能研究方向Researchdirectionofartificialintelligence26051.5.1知识图谱27知识图谱本质上是结构化的语义知识库,是一种由节点和边组成的图数据结构,如图1-4所示。知识图谱以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体—关系—实体”三元组,以及实体及其相关“属性—值”对。不同实体之间通过关系相互联结,构成网状的知识结构。在知识图谱中,每个节点表示现实世界的“实体”,每条边为实体与实体之间的“关系”。通俗地讲,知识图谱就是把所有不同种类的信息连接在一起而得到的一个关系网络,提供了从“关系”的角度去分析问题的能力。知识图谱可用于反欺诈、不一致性验证、组团欺诈等公共安全保障领域,需要用到异常分析、静态分析、动态分析等数据挖掘方法。特别地,知识图谱在搜索引擎、可视化展示和精准营销方面有很大的优势,已成为业界的热门工具。但是,知识图谱的发展还有很大的挑战,如数据的噪声问题,即数据本身有错误或者数据存在冗余。随着知识图谱应用的不断深入,还有一系列关键技术需要突破。271.5.2自然语言处理28机器翻译问答系统语义理解机器翻译技术是指利用计算机技术实现从一种自然语言到另外一种自然语言的翻译过程。基于统计的机器翻译方法突破了之前基于规则和实例翻译方法的局限性,翻译性能取得巨大提升。基于深度神经网络的机器翻译在日常口语等一些场景的成功应用已经显现出了巨大的潜力。语义理解技术是指利用计算机技术实现对文本篇章的理解,并且回答与篇章相关问题的过程。语义理解技术将在智能客服、产品自动问答等相关领域发挥重要作用,提高问答与对话系统的精度。在数据采集方面,通过自动构造数据方法和自动构造填空型问题的方法来有效扩充数据资源。问答系统技术是指让计算机像人类一样用自然语言与人交流的技术。人们可以向问答系统提交用自然语言表达的问题,系统会返回关联性较高的答案。这些系统可以基于事先定义的知识库、语料库或者机器学习模型来理解用户提问的意图,并从中提取相关信息以给出准确的答案。281.5.3人机交互29语音交互是一种高效的交互方式,是人以自然语音或机器合成语音同计算机进行交互的综合性技术,结合了语言学、心理学、工程和计算机技术等领域的知识。语音交互情感交互就是要赋予计算机类似于人一样的观察、理解和生成各种情感的能力,最终使计算机像人一样能进行自然、亲切和生动的交互。情感交互已经成为人工智能领域中的热点方向,旨在让人机交互变得更加自然。情感交互体感交互是个体不需要借助任何复杂的控制系统,以体感技术为基础,直接通过肢体动作与周边数字设备装置和环境进行自然的交互。体感交互脑机交互又称为脑机接口,指不依赖于外围神经和肌肉等神经通道,直接实现大脑与外界信息传递的通路,脑机接口系统检测中枢神经系统活动,并将其转化为人工输出指令,能够替代、修复、增强、补充或者改善中枢神经系统的正常输出,从而改变中枢神经系统与内外环境之间的交互作用。脑机交互291.5.4计算机视觉3030计算成像学计算成像学是探索人眼结构、相机成像原理以及其延伸应用的科学。在相机成像原理方面,计算成像学不断促进现有可见光相机的完善,使得现代相机更加轻便,可以适用于不同场景。同时计算成像学也推动着新型相机的产生,使相机超出可见光的限制。在相机应用科学方面,计算成像学可以提升相机的能力,从而通过后续的算法处理使得在受限条件下拍摄的图像更加完善,例如图像去噪、去模糊、暗光增强、去雾霾等,以及实现新的功能,例如全景图、软件虚化、超分辨率等。1.5.4计算机视觉3131图像理解图像理解是通过用计算机系统解释图像,实现类似人类视觉系统理解外部世界的一门科学。通常根据理解信息的抽象程度可分为三个层次:浅层理解,包括图像边缘、图像特征点、纹理元素等;中层理解,包括物体边界、区域与平面等;高层理解,根据需要抽取的高层语义信息,可大致分为识别、检测、分割、姿态估计、图像文字说明等。目前高层图像理解算法已逐渐广泛应用于人工智能系统,如刷脸支付、智慧安防、图像搜索等。1.5.4计算机视觉3232三维视觉三维视觉即研究如何通过视觉获取三维信息(三维重建)以及如何理解所获取的三维信息的科学。三维重建可以根据重建的信息来源,分为单目图像重建、多目图像重建和深度图像重建等。三维信息理解,即使用三维信息辅助图像理解或者直接理解三维信息。三维信息理解可分为,浅层:角点、边缘、法向量等;中层:平面、立方体等;高层:物体检测、识别、分割等。三维视觉技术可以广泛应用于机器人、无人驾驶、智慧工厂、虚拟/增强现实等方向。1.5.4计算机视觉3333动态视觉动态视觉即分析视频或图像序列,模拟人处理时序图像的科学。通常动态视觉问题可以定义为寻找图像元素,如像素、区域、物体在时序上的对应,以及提取其语义信息的问题。动态视觉研究被广泛应用在视频分析以及人机交互等方面。感谢观看!Python编程基础第二章1

Python简介2Python开发环境3

Python基础语法4

Python程序流程结构5

Python函数36本章目标1什么是Python

Python是1989年由荷兰人吉多·范罗苏姆(GuidovanRossum)发明的一种面向对象的解释型高级编程语言。Python的第一个公开发行版于1991年发行,在2004年以后,Python的使用率呈线性增长。发展到今天,Python已经成为最受欢迎的程序设计语言之一。37Python简介1什么是Python

Python常被称为“胶水语言”,能够把用其他语言(尤其是C/C++)制作的各种模块很轻松地连接在一起。常见的一种应用情形是,使用Python快速生成程序的原型,然后对其中有特别要求的部分用更合适的语言进行改写。

Python的设计哲学是“优雅”“明确”“简单”。在设计Python语言时,Python通常会使用明确地没有或者很少有歧义的语法。总体来说,选择Python开发程序具有简单、开发速度快、节省时间和精力等特点。Python之父吉多•范罗苏姆曾说“Lifeisshort,youneedPython(人生苦短,我用Python)”。38Python简介2Python语言的特点优点:(1)语言简单Python是一门语法简单且风格简约的易读语言。它注重的是如何解决问题,而不是编程语言本身的语法结构。Python语言丢掉了分号以及花括号这些仪式化的东西,使得语法结构尽可能地简洁,代码的可读性显著提高。相较于C、C++、Java等编程语言,Python提高了开发者的开发效率,削减了C、C++以及Java中一些较为复杂的语法,降低了编程工作的复杂程度。实现同样的功能时,Python语言所包含的代码量是最少的,代码行数是其他语言的1/5到1/3。39Python简介2Python语言的特点优点:(2)开源、免费开源,即开放源代码,也就是所有用户都可以看到源代码。Python的开源体现在两方面:首先,程序员使用Python编写的代码是开源的;其次,Python解释器和模块是开源的。注意,开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件。Python就是这样一种语言,它既开源又免费。用户使用Python进行开发或者发布自己的程序,不需要支付任何费用,也不用担心版权问题,即使用于商业用途,Python也是免费的。40Python简介2Python语言的特点优点:(3)面向对象面向对象的程序设计,更加接近人类的思维方式,是对现实世界中客观实体进行的结构和行为模拟。Python语言完全支持面向对象编程,如支持继承、重载运算符、派生以及多继承等。与C++和Java相比,Python以一种非常强大而简单的方式实现面向对象编程。需要说明的是,Python在支持面向对象编程的同时,也支持面向过程的编程,也就是说,它不强制使用面向对象编程,这使得其编程更加灵活。在“面向过程”的编程中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的编程中,程序是由数据和功能组合而成的对象构建起来的。41Python简介2Python语言的特点优点:(4)跨平台由于Python是开源的,因此它已经被移植到许多平台上。如果能够避免使用那些需要依赖于系统的特性,那就意味着,所有Python程序都无需修改就可以在很多平台上运行,包括Linux、Windows等。解释型语言几乎天生就是跨平台的。Python作为一门解释型语言,天生具有跨平台的特征,只要为平台提供了相应的Python解释器,Python就可以在该平台上运行。42Python简介2Python语言的特点优点:(5)强大的生态系统在实际应用中,Python语言的用户群体,绝大多数并非专业的开发者,而是其他领域的爱好者。对于这一部分用户来说,他们学习Python语言的目的不是去做专业的程序开发,而仅仅是使用现成的类库去解决实际工作中的问题。Python拥有庞大的生态系统,刚好能满足这些用户的需求。43Python简介2Python语言的特点缺点:(1)速度慢Python是解释型语⾔,它的速度会⽐C、C++和Java等慢⼀些,不过对于⽤户⽽⾔,机器上运⾏速度是可以忽略的,再加上现在的硬件配置一般都很高,硬件性能的提升也可以弥补软件性能的不足。所以,一般来说⽤户根本感觉不出来这种速度的差异,不影响使⽤,除⾮是⼀些实时性⽐较强的程序可能会受到⼀些影响,但是也可以通过嵌入C程序等方法解决。44Python简介2Python语言的特点缺点:(2)代码不能加密python是解释型语言,它的开源性导致Python语⾔不能加密,在发布Python程序时,实际上就是发布源代码。这与C语言等编译型语言不同,编译型语言只需将编译后的机器码(exe文件)发布出去,从机器码很难反推出源代码,不易被破解。Python也有一些其他加密方法,但都不是很理想。45Python简介2Python语言的特点缺点:(3)版本不兼容Python的任何一个版本都是无法向上兼容或者是向下兼容的,使用哪一个版本的Python开发出来的程序就只能够用那一个版本的Python解释器去执行。因为在Python的每一次版本更新之后都会对语法或者是一些机制做出相应的改动,就像是原先的关键字变为函数一样。而一旦使用了不同Python版本的解释器去执行Python程序,就会导致解释器不知道这个代码的作用是什么而导致报错。目前应用最多的事Python2和Python3这两个版本,Python3将原本Python2中的许多语法都改成了内置函数,并且还添加和修改了很多的执行机制。甚至在编码风格上也有所不同,执行机制不一样导致不同版本无法兼容。版本不兼容导致增加了很多代码迁移工作,甚至根本无法迁移。46Python简介2Python语言的特点缺点:(4)多线程性能瓶颈Python的另一个大问题是,对多处理器支持不友好。GIL(GlobalInterpreterLock)是Python中的全局解释器锁,是一个互斥锁。当Python的默认解释器要执行字节码时,都需要先申请这个锁。这意味着,如果试图通过多线程扩展应用程序,将总是被这个全局解释器锁限制。当然,我们可以使用多进程的架构来提高程序的并发,也可以选择不同的Python实现来运行我们的程序。47Python简介481安装PythonPython可以用于多种平台,包括Windows、Linux和macOS等。本书下载安装的Python版本是3.11.4(当前最新版)。请到Python官方网站下载与自己计算机的操作系统相匹配的安装包。在安装过程中,可选中“Addpython.exetoPATH”复选框,可在安装过程中自动配置PATH环境变量,避免了手动配置的过程。Python开发环境的搭建491安装Python安装完成后,需要检测是否安装成功,打开Windows操作系统的cmd命令界面,并在命令提示符输入“python”后回车,如果出现如图所示信息,则说明Python已成功安装。Python开发环境的搭建502使用交互式执行命令上图所示的界面是一个交互式执行环境(也称为“解释器”),可以在Python命令提示符“>>>”后输入Python代码,按回车键后可得到执行结果,如图所示。Python开发环境的搭建513运行代码文件假设在计算机的D盘的根目录中已经存在一个Python的代码文件hello.py,该文件中只有一行代码:【文件1.1】hello.py在命令提示符界面输入如下语句可执行该代码:执行结果print("HelloWorld!")pythonD:\hello.pyPython开发环境的搭建524使用IDLE编写代码Python安装成功之后,会自带一个集成式开发环境IDLE,它是一个PythonShell,帮助程序开发人员和Python进行交互。在Windows操作系统的“开始菜单-Python3.11-IDLE(Python3.1164-bit)”中点击启动IDLE,进入IDLE的主窗口,如图所示。在Python命令提示符“>>>”后输入Python代码,回车后立即得到运行结果。Python开发环境的搭建534使用IDLE编写代码在IDLE中同样可以创建代码文件,在菜单栏选择“File-NewFile”,会弹出新的文本界面窗口,可在其中输入Python代码。代码输入完毕后,在顶部菜单栏选择“File-SaveAs...”,把文件保存为hello.py,如图所示。Python开发环境的搭建544使用IDLE编写代码如要运行代码文件,在菜单栏选择“Run-RunModule”,或直接使用快捷键“F5”,即可运行程序,运行结果显示在IDLEShell窗口中,如图所示。Python开发环境的搭建555第三方开发工具为方便我们更好地进行程序编写,我们可以选择第三方开发工具进行Python编程,比如PyCharm。PyCharm是一款使用广泛、功能齐全的Python编辑器,具有跨平台性,可以应用于Windows、Linux和macOS系统中。PyCharm具有一般的集成式开发环境应具备的功能,如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成和版本控制等功能,容易上手。还有其他第三方开发工具,如Eclipse、JupyterNotebook等,也能够支持Python开发,程序开发人员可以根据自己实际情况选择合适的开发工具。Python开发环境的搭建

Python基础语法022.1基本语法2.2基本数据类型2.3包定义、注释和缩进2.4基本输入和输出57本部分目标2.1.1关键字Python语言中定义了一些专有词汇,统称为关键字,如class、if、print等,他们具有特定的含义和用法。可通过如下方式查看Python语言中的所有关键字。58importkeywordprint(keyword.kwlist)2.1

基本语法2.1.1关键字下表列出了Python语言中的所有关键字。注意,Python中关键字是区分大小写的59FalseNoneTrueandasassertasyncawaitbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyield2.1基本语法2.1.2变量和常量变量是存放数据值的容器,在程序运行过程中值可以被改变的量。与变量相对应的“常量”,是指在程序运行过程中值不能被改变的量。但是Python并没有提供定义常量的关键字,不过PEP8(即Python增强提案)定义了常量的命名规范,即常量名由大写字母和下划线组成。但是在实际应用中,常量首次被赋值以后,其值还是可以被其他代码修改。602.1基本语法2.1.2变量和常量变量的命名需要遵循以下规则:(1)变量名只能包含字母、数字和下划线。(2)变量名不能以数字开头。(3)变量名不能使用Python中的关键字。(4)变量名应该有意义并且具有良好的可读性。612.1基本语法2.1.2变量和常量Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。使用等号“=”来给变量赋值。等号“=”运算符左边是一个变量名,等号“=”运算符右边是存储在变量中的值。62counter=100#整型变量miles=1000.0#浮点型变量name="Bob"#字符串print(counter)print(miles)print(name)输出结果:1001000.0Bob2.1基本语法Python3中有六个标准数据类型:数字、字符串、列表、元组、字典和集合。其中,数字和字符串是基本数据类型。列表、元组、字典和集合是组合数据类型。632.2基本数据类型2.2.1数字类型在Python中数字类型包括整数(int)、浮点数(float)、布尔类型(bool)和复数(complex)。1.整数整数类型是整数数值,包括正整数、负整数和0,没有小数,长度不限。64x=10y=37216654545182186317z=-465167846print(x)print(y)print(z)输出结果:1037216654545182186317-4651678462.2基本数据类型2.2.1数字类型2.浮点数

浮点数即小数,由整数部分和小数部分构成,如3.14。

也可以用科学技术法表示,如1.3e-4。65x=3.14y=-63.78z=1.3e-4print(x)print(y)print(z)输出结果:3.14-63.780.000132.2基本数据类型2.2.1数字3.布尔类型

Python中的布尔类型主要用来表示真(True)或假(False)的值。

布尔值可以转换为数值:True的值为1。False的值为0,可以进行数值运算。66T=Trueprint(T)print(int(T))#类型转换F=Falseprint(F)print(int(F))#类型转换输出结果:True1False02.2基本数据类型2.2.1数字4.复数

复数由实数部分和虚数部分构成,用“j”作为虚部编写,或者使用complex(a,b)表示。67x=2+3jy=-7jz=complex(3,5)print(x)print(y)print(z)输出结果:(2+3j)(-0-7j)(3+5j)2.2基本数据类型2.2.2字符串

python中的字符串是由单引号或双引号界定,如‘hello’等同于"hello"。通过使用变量名称后跟等号和字符串,可以把字符串赋值给变量:68print("Hello")print('Hello')a="HelloWorld"print(a)输出结果:HelloHelloHelloWorld2.2基本数据类型2.2.2字符串

也可以使用三引号界定,通常用于字符串分布于连续的多行上:69eee='''鹅,鹅,鹅,曲项向天歌。白毛浮绿水,红掌拨清波。'''print(eee)输出结果:鹅,鹅,鹅,曲项向天歌。白毛浮绿水,红掌拨清波。2.2基本数据类型2.2.2字符串

Python支持转义字符,即使用反斜杠“\”对一些特殊字符进行转义。

常用的转义字符如表所示。70转义字符含义\n换行符\t制表符\r回车\\一个反斜杠\\’单引号\”双引号print("好好学习\n天天向上")输出结果:好好学习天天向上2.2基本数据类型2.2.3列表列表是一个有序且可更改的集合。在Python中,列表用方括号“[]”编写。可以通过引用索引号来访问列表项,注意,列表的索引从0开始,即第一个索引是0,第二个索引是1,以此类推。可以通过指定范围的起点和终点来指定索引范围,指定范围后,返回值将是包含指定项目的新列表。712.2基本数据类型2.2.3列表列表的添加、删除和修改请见如下程序:72thislist=["apple","banana","cherry","orange","kiwi","melon"]print(thislist)print(thislist[1])#打印第二个元素print(thislist[2:5])#打印第三个到第五个元素#搜索将从索引2(包括)开始,到索引5(不包括)结束thislist.append("mango")#添加mangoprint(thislist)thislist.insert(1,"mango1")#在第二个位置添加mango1print(thislist)thatlist=["1","2"]thislist.extend(thatlist)#在thislist后拼接上thatlistprint(thislist)thislist.remove("banana")#删除指定元素print(thislist)thislist.pop()#删除末尾元素print(thislist)delthislist[0]#删除指定位置的元素print(thislist)thislist[1]="potato"#修改指定位置元素print(thislist)输出结果:['apple','banana','cherry','orange','kiwi','melon']banana['cherry','orange','kiwi']['apple','banana','cherry','orange','kiwi','melon','mango']['apple','mango1','banana','cherry','orange','kiwi','melon','mango']['apple','mango1','banana','cherry','orange','kiwi','melon','mango','1','2']['apple','mango1','cherry','orange','kiwi','melon','mango','1','2']['apple','mango1','cherry','orange','kiwi','melon','mango','1']['mango1','cherry','orange','kiwi','melon','mango','1']['mango1','potato','orange','kiwi','melon','mango','1']2.2基本数据类型2.2.3列表Python中关于列表的其他方法请参考下表。73方法描述append()在列表的末尾添加一个元素clear()删除列表中的所有元素copy()返回列表的副本count()返回具有指定值的元素数量。extend()将列表元素(或任何可迭代的元素)添加到当前列表的末尾index()返回具有指定值的第一个元素的索引insert()在指定位置添加元素pop()删除指定位置的元素remove()删除具有指定值的项目reverse()颠倒列表的顺序sort()对列表进行排序2.2基本数据类型2.2.4元组元组是有序且不可更改的集合。在Python中,元组是用圆括号“()”编写的。74thistuple=("apple","banana","cherry","kiwi")#创建元组print(thistuple)print(thistuple[1])#打印元组中的第二个元素print(thistuple[0:3])#打印第一个到第三个元素tuple1=("a","b","c")tuple2=(1,2,3)tuple3=tuple1+tuple2#合并元组print(tuple3)tuple2=(11,22,33)print(tuple2)#重新赋值delthistupleprint(thistuple)#这会引发错误,因为元组已不存在。运行结果:('apple','banana','cherry','kiwi')banana('apple','banana','cherry')('a','b','c',1,2,3)(11,22,33)Traceback(mostrecentcalllast):File"E:\python\python_code\test.py",line87,in<module>print(thistuple)#这会引发错误,因为元组已不存在。^^^^^^^^^NameError:name'thistuple'isnotdefined2.2基本数据类型2.2.4元组

元组属于不可变序列,所以无法修改元组中的元素值,也无法删除元组中的部分元素。Python中关于元组的方法请参考下表。75方法描述count()返回具有指定值的元素数量。index()返回具有指定值的第一个元素的索引2.2基本数据类型2.2.5字典字典是一个无序、可变和有索引的集合。在Python中,字典用花括号“{}”编写,拥有键和值。76thisdict=

{"brand":"Porsche","model":"911","year":1963}print(thisdict)x=thisdict["model"]#通过在方括号内引用其键名来访问字典的元素print(x)y=thisdict.get("model")#结果同上print(y)#通过引用其键名来更改特定项的值thisdict["year"]=2019print(thisdict["year"])#逐个打印字典中的所有值forxinthisdict:print(thisdict[x])#使用values()函数返回字典的值forxinthisdict.values():print(x)#检查字典中是否存在"model"if"model"inthisdict:print("Yes,'model'isoneofthekeysinthethisdictdictionary")#打印字典中的项目数print(len(thisdict))#通过使用新的索引键并为其赋值,可以将项目添加到字典中thisdict["color"]="red"print(thisdict)#pop()方法删除具有指定键名的项thisdict.pop("model")print(thisdict)#del关键字删除具有指定键名的项目delthisdict["year"]print(thisdict)#clear()关键字清空字典thisdict.clear()print(thisdict)#del关键字也可以完全删除字典delthisdictprint(thisdict)#this会导致错误,因为"thisdict"不再存在运行结果:{'brand':'Porsche','model':'911','year':1963}9119112019Porsche9112019Porsche9112019Yes,'model'isoneofthekeysinthethisdictdictionary3{'brand':'Porsche','model':'911','year':2019,'color':'red'}{'brand':'Porsche','year':2019,'color':'red'}{'brand':'Porsche','color':'red'}{}Traceback(mostrecentcalllast):File"E:\python\python_code\test.py",line138,in<module>print(thisdict)#this会导致错误,因为"thisdict"不再存在^^^^^^^^NameError:name'thisdict'isnotdefined2.2基本数据类型2.2.5字典Python中关于字典的方法请参考下表。77方法描述clear()删除字典中的所有元素copy()返回字典的副本fromkeys()返回拥有指定键和值的字典get()返回指定键的值items()返回包含每个键值对的元组的列表keys()返回包含字典键的列表pop()删除拥有指定键的元素popitem()删除最后插入的键值对setdefault()返回指定键的值。如果该键不存在,则插入具有指定值的键。update()使用指定的键值对字典进行更新values()返回字典中所有值的列表2.2基本数据类型2.2.6集合集合是无序和无索引的集合。在Python中,集合用花括号“{}”编写。78thisset={"apple","banana","cherry"}print(thisset)#集合是无序的,因此无法确定元素的显示顺序#遍历集合,并打印值forxinthisset:print(x)#检查set中是否存在“banana”print("banana"inthisset)#使用add()方法向集合中添加项目thisset.add("orange")print(thisset)#使用update()方法将多个项添加到集合中thisset.update(["mango","grapes"])print(thisset)#使用len()方法得到集合中元素个数print(len(thisset))#使用remove()方法来删除“banana”thisset.remove("banana")print(thisset)#注意,如果要删除的元素不存在,则remove()将引发错误#使用discard()方法来删除“mango”thisset.discard("mango")print(thisset)#如果要删除的元素不存在,则discard()不会引发错误#clear()方法清空集合thisset.clear()print(thisset)#del彻底删除集合delthissetprint(thisset)#报错运行结果:{'banana','cherry','apple'}bananacherryappleTrue{'banana','cherry','apple','orange'}{'banana','orange','grapes','apple','cherry','mango'}6{'orange','grapes','apple','cherry','mango'}{'orange','grapes','apple','cherry'}set()Traceback(mostrecentcalllast):File"E:\python\python_code\test.py",line178,in<module>print(thisset)#报错^^^^^^^NameError:name'thisset'isnotdefined2.2基本数据类型2.2.7数据类型转换在实际使用中,有时需要进行数据类型的转换。有两种数据类型转换:隐式类型转换显式类型转换792.2基本数据类型2.2.7数据类型转换1.隐式类型转换

隐式类型转换由系统自动完成,比如当我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。80num_int=123num_flo=1.23num_new=num_int+num_floprint("datatypeofnum_int:",type(num_int))print("datatypeofnum_flo:",type(num_flo))print("Valueofnum_new:",num_new)print("datatypeofnum_new:",type(num_new))运行结果:datatypeofnum_int:<class'int'>datatypeofnum_flo:<class'float'>Valueofnum_new:124.23datatypeofnum_new:<class'float'>2.2基本数据类型2.2.7数据类型转换2.显式类型转换

显式类型转换需要使用类型函数来实现,比如整型和字符串类型运算结果会报错,输出TypeError。Python在这种情况下无法使用隐式转换,可以使用int()、float()、str()等预定义函数来执行显式类型转换。81num_int=123num_str="456"print("num_int数据类型为:",type(num_int))print("类型转换前,num_str数据类型为:",type(num_str))num_str=int(num_str)#强制转换为整型print("类型转换后,num_str数据类型为:",type(num_str))num_sum=num_int+num_strprint("num_int和num_str相加的结果为:",num_sum)print("num_int和num_str相加的类型为:",type(num_sum))运行结果:num_int数据类型为:<class'int'>类型转换前,num_str数据类型为:<class'str'>类型转换后,num_str数据类型为:<class'int'>num_int和num_str相加的结果为:579num_int和num_str相加的类型为:<class'int'>2.2基本数据类型2.2.7数据类型转换Python提供了一些常用的数据类型转换函数,如下表所示。82函数说明int(x)把x转换成整数类型float(x)把x转换成浮点数类型str(x)把x转换成字符串类型chr(x)将整数x转换成一个字符ord(x)将一个字符x转换成对应的整数值tuple(x)将可迭代系列(如列表)转换为元组list(x)将元组或字符串转换为列表set(x)创建一个无序不重复元素集,可进行关系测试,删除重复数据2.2基本数据类型2.3.1包定义每个Python源码文件可以定义为一个Python模块,如果定义的模块很多,则会出现管理繁琐混乱的问题,所以引入“包”的概念。Python中,一个包是一个包含模块和资源的文件夹,其文件夹将多个模块组织在一起,以实现更好的封装和重用。除了自定义的Python包之外,Python还提供了Python标准库和第三方的Python包来扩展Python的功能,Python标准库包含了许多常用的包和模块,如:os、sys、datetime、math等。Python包的组成结构:

文件夹/目录__init__.py的文件832.3包定义、注释和缩进2.3.1包定义一个名为“my_package”包的实例如下:84my_package:__init__.pysend_message.pyreceive_message.py__init__.pyfrom.importsend_messagefrom.importreceive_message要在外界使用包中的模块,需要在__init__.py中指定对外界提供的模块列表。【文件2.1】__init__.py中的代码如下:2.3包定义、注释和缩进2.3.1包定义一个名为“my_package”包的实例如下:85my_package:__init__.pysend_message.pyreceive_message.pysend_message.pydefsend(text):print("已发送%s..."%text)#按实际需要添加代码【文件2.2】send_message.py中的代码如下:2.3包定义、注释和缩进2.3.1包定义一个名为“my_package”包的实例如下:86my_package:__init__.pysend_message.pyreceive_message.pyreceive_message.pydefrecevie():return"收到来自send_message的短信"#按实际需要添加代码【文件2.3】receive_message.py中的代码如下:2.3包定义、注释和缩进2.3.1包定义一个名为“my_package”包的实例如下:87my_package:__init__.pysend_message.pyreceive_message.py#导入包importmy_package

my_package.send_message.send("你好")

text=my_package.receive_message.recevie()print(text)在这个包外使用这个包:【文件2.4】demo5.py运行结果:已发送你好...收到来自send_message的短信2.3包定义、注释和缩进2.3.2注释注释可用于解释Python代码,有利于提高代码的可读性。1.单行注释注释以“#”开头,单行注释可以放在单独一行,也可以放在Python语句后面。88#Thisisacommentprint("Hello,World!")或者:print("Hello,World!")#Thisisacomment2.3包定义、注释和缩进2.3.2注释注释可用于解释Python代码,有利于提高代码的可读性。2.多行注释当需要写的注释的内容过多,一行无法显示的话,可以使用多行注释。Python可以使用三个单引号或者三个双引号来表示多行注释。89'''这是多行注释,用三个单引号这是多行注释,用三个单引号'''或者:"""这是多行注释,用三个双引号这是多行注释,用三个双引号"""2.3包定义、注释和缩进2.3.3缩进和其它程序设计语言(如Java、C语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号(:)来区分代码块之间的层次,所以缩进在Python中尤为重要。在Python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。902.3包定义、注释和缩进2.3.3缩进注意,Python中实现对代码的缩进,可以使用空格或者Tab键实现。但无论是手动敲空格,还是使用Tab键,通常情况下都是采用4个空格长度作为一个缩进量(默认情况下,一个Tab键就表示4个空格)。912.3包定义、注释和缩进2.3.3缩进这段Python代码中就用到了缩进表示代码块。921.list=[2,5,6,9,7,54]2.forxinlist:3.print(x)4.ifx>5:5.x=x+86.print(x)7.else:8.x=x-8在上述代码中,处于同一个缩进状态的语句是相同的层次,如第5行和第6行,相同的缩进表示处于同一个代码块中,所以第3行到第8行都是for循环的代码块,如果第4行x>5为真,则执行第5行和第6行代码。2.3包定义、注释和缩进2.3.3缩进这段Python代码中就用到了缩进表示代码块。931.list=[2,5,6,9,7,54]2.forxinlist:3.print(x)4.ifx>5:5.x=x+86.print(x)7.else:8.x=x-8

如果第6行代码的缩进和第4行对齐,则表示“如果x>5,则执行x=x+8”,print(x)则与ifx>5并列,即无论x是否大于5,都会打印输出x。

在Python中,必须严格执行正确的缩进。1.list=[2,5,6,9,7,54]2.forxinlist:3.print(x)4.ifx>5:5.x=x+86.print(x)7.else:8.x=x-82.3包定义、注释和缩进2.4.1输入在Python中,可以使用input()函数读取标准输入数据,接收用户的键盘输入,请看如下示例:【文件2.5】demo6.py94name=input("请输入您的名字:")print("您好,"+name+"!让我们一起学习Python")

运行程序后,首先会打印出input后的字符串,然后等待用户从键盘输入信息,假设用户从键盘输入名字“Mary”,并按回车键,程序继续执行后续语句:请输入您的名字:请输入您的名字:Mary您好,Mary!让我们一起学习Python2.4基本输入和输出2.4.1输入在Python3中,无论输入的是数字还是字符串,input()函数返回的结果都是字符串,请看如下示例:95>>>x=input("请输入:")请输入:8>>>print(type(x))#type()可显示变量的类型<class'str'>>>>x=input("请输入:")请输入:’8’>>>print(type(x))<class'str'>>>>x=input("请输入:")请输入:”8”>>>print(type(x))<class'str'>无论是输入数字8,还是输入字符串’8’或者”8”,input()函数都返回字符串类型。如果想要从键盘接收数值类型的数据,则需要进行类型转换。>>>x=int(input("请输入:"))请输入:”8”>>>print(type(x))<class'int'>2.4基本输入和输出2.4.2输出1.print()函数输出print()函数是标准的输出函数,print()将结果输出到IDLE或控制台上都是字符串,请看如下示例:【文件2.6】demo7.py96r=4pi=3.14#print可输出多个字符串和变量,中间用逗号隔开print("圆的半径是",r)#print后面可跟表达式,输出的是计算后的结果print("圆的直径是",2*r)s=pi*r*r#Python中表达式不可遗漏符号c=2*pi*rprint("圆的面积是",s)print("圆的周长是",c)圆的半径是4圆的直径是8圆的面积是50.24圆的周长是25.12从上述例子中我们可以看出print()函数是默认换行的,即输出语句后自动切换到下一行。2.4基本输入和输出2.4.2输出如果两个print()语句输出的结果想要不换行,可以用end=’’实现:【文件2.7】demo8.py97r=4pi=3.14#print可输出多个字符串和变量,中间用逗号隔开print("圆的半径是",r,end='')#print可跟表达式,输出的是计算后的结果print("圆的直径是",2*r,end='')s=pi*r*r#Python中表达式不可遗漏符号c=2*pi*rprint("圆的面积是",s,end='')print("圆的周长是",c,end='')圆的半径是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论