《Python编程案例教程》(高登) 2.Python编程案例-项目二_第1页
《Python编程案例教程》(高登) 2.Python编程案例-项目二_第2页
《Python编程案例教程》(高登) 2.Python编程案例-项目二_第3页
《Python编程案例教程》(高登) 2.Python编程案例-项目二_第4页
《Python编程案例教程》(高登) 2.Python编程案例-项目二_第5页
已阅读5页,还剩43页未读, 继续免费阅读

下载本文档

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

kok电子竞技:文档简介

项目二Python编程基础知识项目二

俗话说“千里之行,始于足下”,在进入Python编程世界之初,我们需要学习Python语言的基础知识。只有熟练掌握了Python语言的基础知识,才能在Python编程世界中走得更远。项目导读学习目标掌握Python变量的命名规则和赋值方法。掌握Python中常见的数据类型。熟悉Python中各种运算符的使用方法。掌握Python中输入和输出的方法。能通过键盘与计算机进行交互。思政目标增强遵守规则的意识,养成按规矩行事的习惯。

加强基础知识的学习,从而实现从量变到质变的转化,为个人的长远发展打下坚实的基础。了解中国古代人民的智慧,增强民族自豪感。项目二Content项目二输出个人简介实现数据加密和解密开发“你问我答”游戏输出个人简介任

一任务一

个人简介一般包括姓名、性别、年龄、身高和爱好等信息,不同类型的信息须使用不同数据类型的变量来保存。本任务将带领大家编写Python程序,输出个人简介。输出个人简介任务描述知识链接一、变量

在编写程序时,可以直接使用数据,也可以将数据保存到变量中,方便以后使用。所以说,变量可以看成是一个小箱子,专门用来“盛装”程序中的数据。每个变量都拥有一个名字,通过变量名就可以找到变量中的数据。Python中变量的命名需要遵循一定的规则,即变量名只能包括字母、数字和下划线,且第一个字符必须是字母或下划线,不能是数字。例如,name、_name1、name_2都是合法的变量名,但1name、2_name、&123、%name、M.Jack、?name2都是不合法的变量名。在实际开发过程中,为提高代码的可读性,会经常使用以下3种命名方式。(1)小驼峰式命名。第一个单词首字母小写,之后的单词首字母大写,如myName、myFriendName等。(2)大驼峰式命名。每个单词首字母都大写,如MyName、MyFriendName等。(3)下划线连接命名。用下划线“_”连接每个单词,如my_name、my_friend_name等。1.变量的命名规则(1)Python的变量名区分英文字母大小写,如score和Score是两个不同的变量。

(2)Python的关键字不能作为变量名使用。任务一

Python本身定义的一些具有特定功能的标识符称为关键字。可在PyCharm中编写如下代码查看关键字,执行结果如图所示。

importkeyword #导入keyword模块

print(keyword.kwlist)

#查看所有关键字任务一

变量赋值时,Python会自动声明变量的数据类型。赋值运算符“=”用于为变量赋值,其左侧是变量名,而右侧是变量指向的值。例如:a=1b=1.2c='小红'

Python还允许同时为多个变量赋相同的值。例如:a=b=c=1作用是同时将1赋值给变量a、b和c,相当于:任务一2.变量的赋值a=1b=1c=1也可以同时为多个变量分别赋不同的值。例如:任务一a,b,c=1,2,'hello'作用是将1、2和“hello”分别赋值给变量a、b和c。相当于:a=1b=2c='hello'name='小蓝' #定义名字变量name,赋值为“小蓝”age=3 #定义年龄变量age,赋值为3cartoon='小猪佩奇' #定义动画片变量cartoon,赋值为“小猪佩奇”#输出小蓝3岁时喜欢的动画片print(name,age,'岁时喜欢的动画片是',cartoon)age=5 #age重新赋值为5cartoon='机器猫' #cartoon重新赋值为“机器猫”#输出小蓝5岁时喜欢的动画片print(name,age,'岁时喜欢的动画片是',cartoon)age=10

#age重新赋值为10cartoon='海贼王' #cartoon重新赋值为“海贼王”#输出小蓝10岁时喜欢的动画片print(name,age,'岁时喜欢的动画片是',cartoon)任务一【例】

输出小蓝在不同的年龄喜欢的动画片。【参考代码】任务一【运行结果】小蓝3岁时喜欢的动画片是小猪佩奇小蓝5岁时喜欢的动画片是机器猫小蓝10岁时喜欢的动画片是海贼王变量使用前必须先赋值,因为变量指向的内存对象只有在赋值后才会被创建。

变量的数据类型取决于它指向的数据的类型。Python的数据类型包括数字、布尔类型、字符串、列表、元组、字典和集合等。此处简单介绍数字、布尔类型和字符串,其余类型将在项目四中介绍。任务一二、数据类型数据类型1.数字数字数据类型用于存储数值。Python支持不同的数值类型,包括int、float和complex。(1)int(整型)数值通常称为整数。Python可以处理任意大小的整数,当然包括负整数。整数在程序中的表示方法和数学上的写法一致,如18、?175。

在Python中,整数也可以用八进制或十六进制表示。Python中八进制数以数字0开头,只能用数字0~7组合表达。例如,0154对应的十进制数为1×82+5×81+4×80=108。十六进制数以0x开头,只能用数字0~9及字母A~F(或a~f)组合表达。其中,A代表数值10,B代表数值11,依此类推,F代表数值15。例如,0x15F对应的十进制数为1×162+5×161+15×160=351。任务一(2)float(浮点型)数值也称为浮点数,由整数和小数组成。Python中浮点数只能用十进制形式表示,但其表示方法有以下两种。①小数表示法,由整数部分和小数部分组成,如0.0013、?1482.5。②科学表示法,通常用来表示一些比较大或比较小的数值,表示方法是在小数表示法后加“E”或“e”及指数部分,其中,“E”或“e”表示十次方,指数部分为整数,可正可负。但要注意,“E”或“e”前面必须有数字。例如,0.0013可表示为1.3e?3,?1482.5可表示为?1.4825e3。

(3)complex(复数型)数值由实数部分和虚数部分组成,一般形式为a+bj,其中,a是复数的实数部分,b是复数的虚数部分,这里的a和b是整数或浮点数,如2.14j、2+12.1j。任务一2.布尔类型

布尔(bool)类型是一种比较特殊的类型,它只有“True”(真)和“False”(假)两种值。在Python中,可以直接用“True”和“False”表示布尔值(注意首字母大写),也可以通过比较和判断得到布尔值。例如:10<30 #判断10是否小于30,结果为True10>20 #判断10是否大于20,结果为False

字符串(str)是以单引号或双引号括起来的任意文本,如'abc'、"xyz"等。如果单引号本身也是字符串中的一个字符,那就可以用双引号括起来;反之,如果双引号本身也是字符串中的一个字符,那就可以用单引号括起来。例如:任务一3.字符串"I'mOK!"'Itoldmyfriend,"Pythonismyfavoritelanguage!"'如果字符串内部既包含单引号又包含双引号,则可以用转义字符“\”来标识,例如:'I\'m\"OK\"!'表示的字符串内容是:I'm"OK"!转义字符以“\”开头,后跟一个字符,通常用来表示一些控制代码和功能定义。Python中常用的转义字符如表2-1所示。任务一转义字符说明转义字符说明\n回车换行\'单引号符(')\b退格\"双引号符(")\r回车\a鸣铃\t水平制表\f换页符\v垂直制表\\反斜线符(\)Python还允许在引号前加r来表示引号内部的字符串默认不转义。任务实施

完成本任务,须首先定义字符串类型变量name(姓名)、sex(性别)和hobby(爱好),整型变量age(年龄),浮点型变量height(身高),并分别赋初值;然后使用print()函数输出个人简介。实现数据加密和解密任

数据加密是通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。本任务将带领大家编写Python程序,通过对数据进行运算实现简单的加密和解密。任务二实现数据加密和解密任务描述知识链接数据的运算通过运算符来完成,运算符用于连接表达式中各种类型的数据、变量等操作数。Python支持多种类型的运算符,包括算术运算符、赋值运算符、关系运算符、逻辑运算符、成员运算符、身份运算符和位运算符等。任务二一、算术运算符Python提供了7个基本的算术运算符,其运算方式与数学中基本类似。具体符号如表2-2所示。表2-2算术运算符运算符名称示例说明+加法运算a+b返回a和b的和?减法运算a?b返回a和b的差*乘法运算a*b返回a和b的积/除法运算a/b返回a和b的商%取模运算a%b返回a除以b的余数**幂(乘方运算)a**b返回a的b次幂//整除a//b返回a和b的商的整数部分(向下取整)。如果其中一个操作数为负数,则结果为负数。例如,3//4=0,4//3=1,?3//4=?1,4//?3=?2

赋值运算符用来给变量赋值,Python提供的赋值运算符可分为简单赋值和复合赋值两种。简单赋值运算符“=”已经在任务一中介绍了,下面着重介绍复合赋值运算符。

在Python中,经常会有利用变量的原有值计算出新值并重新赋值给这个变量的情况。例如,下面表达式就是把变量a的值加上1后再赋值给a。a=a+1复合赋值运算符允许缩短这个表达式,使用“+=”运算符,可以将上面的表达式简写为:a+=1 #相当于a=a+1

其中,复合赋值运算符中较为常用的是复合算术赋值运算符,包括+=、?=、*=、/=、%=、**=和//=共7种。例如:任务二二、赋值运算符a+=b #相当于a=a+ba?=b #相当于a=a?ba*=b #相当于a=a*ba/=b #相当于a=a/ba%=b #相当于a=a%ba**=b

#相当于a=a**ba//=b

#相当于a=a//b任务二如果b是包含若干项的表达式,则相当于它有括号,例如:

、a*=b?3 #相当于a=a*(b?3)

关系运算符又称比较运算符,用于比较运算符两侧数据的值,比较的结果是一个布尔值,即True或False。Python提供的关系运算符如表2-3所示。任务二三、关系运算符表2-3关系运算符运算符名称示例说明==等于a==b判断a和b的值是否相等,如果是则结果为True,否则为False!=不等于a!=b判断a和b的值是否不相等,如果不相等则结果为True,否则为False>大于a>b判断a的值是否大于b的值,如果是则结果为True,否则为False<小于a<b判断a的值是否小于b的值,如果是则结果为True,否则为False>=大于等于a>=b判断a的值是否大于等于b的值,如果是则结果为True,否则为False<=小于等于a<=b判断a的值是否小于等于b的值,如果是则结果为True,否则为False使用关系运算符时须注意以下几点。(1)等于、不等于、大于等于、小于等于运算符(==、!=、>=、<=)的表示方法与数学中的表示方法不同(=、≠、≥、≤)。(2)关系运算符两侧的值可以是数值、字符串等数据类型,但应为同一类型。(3)字符串数据进行比较运算时,按照其内容的ASCII码值进行比较。在比较两个字符串时,先比较第一个字符,其中ASCII码值较大的字符所在字符串较大,如果第一个字符相同,再比较第二个字符……。例如,'abce'>'abcdef'为True,是因为逐个比较前三个字符,其ASCII码值相同,在比较第四个字符时,“e”的ASCII码值大于“d”的ASCII码值,因此,该表达式的值为True。(注意:不是比较字符串长短)任务二Python的逻辑运算符包括and(与)、or(或)、not(非)3种,如表2-4所示。与C/C++、Java等语言不同的是,Python中逻辑运算的返回值不一定是布尔值。任务二四、逻辑运算符表2-4逻辑运算符运算符名称示例说明and与aandb如果a的值为False,无须计算b的值,返回a的值;否则返回b的值or或aorb如果a的值为True,无须计算b的值,返回a的值;否则返回b的值not非nota如果a的值为True,返回值为False;如果a的值为False,返回值为True逻辑、成员和身份运算符

【参考代码】任务二【例2-2】

关系运算符和逻辑运算符示例。a=5 #定义变量a,赋值为5b=6 #定义变量b,赋值为6#输出逻辑表达式的值print('a=',a,',b=',b)print('a-5andb<3=',a-5andb<3)print('a<6andb+3=',a<6andb+3)print('a-5orb<3=',a-5orb<3)print('a<6orb+3=',a<6orb+3)print('nota=',nota)【程序说明】计算“a?5andb<3”表达式时,先计算“a?5”得到的值为0,即为False,因此无须计算“b<3”的值,表达式的值即为0。计算“a<6andb+3”表达式时,先计算“a<6”得到的值为True,因此,需计算表达式“b+3”的值,且整个表达式的值为“b+3”的值,即为9。任务二【运行结果】

程序运行结果如图2-4所示。计算“a?5orb<3”表达式时,先计算“a?5”得到的值为0,即为False,因此,需计算“b<3”的值,且整个表达式的值为“b<3”的值,即为False。计算“a<6orb+3”表达式时,先计算“a<6”得到的值为True,无须计算“b+3”的值,表达式的值为True。计算“nota”表达式时,由于a的值为5,即为True,因此,表达式的值为False。任务二在Python中,当参与逻辑运算的数值为0时,则将它看作逻辑“假”,而将所有非0的数值都看作逻辑“真”。

成员运算符用于判断一个元素是否在某个序列中,如字符串、列表、元组等。Python提供的成员运算符如表2-5所示。任务二五、成员运算符表2-5成员运算符运算符示例说明inainb如果a在b序列中,则返回True,否则返回Falsenotinanotinb如果a不在b序列中,则返回True,否则返回False【参考代码】snack1='薯片' #定义零食变量snack1,赋值为“薯片”snack2='棒棒糖' #定义零食变量snack2,赋值为“棒棒糖”#定义购物清单列表snackListsnackList=['可乐','苹果','薯片','奥利奥','鸡腿']#判断薯片是否在购物清单中print('薯片在购物清单中?',snack1insnackList)#判断棒棒糖是否在购物清单中print('棒棒糖在购物清单中?',snack2insnackList)#判断棒棒糖是否不在购物清单中print('棒棒糖不在购物清单中?',snack2notinsnackList)任务二【例2-3】

判断指定零食是否在购物清单中。任务二【运行结果】

程序运行结果如图2-5所示。

图2-5例2-3程序运行结果

关系运算符中的“==”是比较两个变量的值是否相等。身份运算符用来判断两个变量是否指向同一个内存对象。Python提供的身份运算符如表2-6所示。任务二六、身份运算符表2-6身份运算符运算符示例说明isaisb如果a和b引用的是同一个对象则返回True,否则返回Falseisnotaisnotb如果a和b引用的不是同一个对象则返回True,否则返回False任务二【例2-4】

判断三个整型变量是否为同一个对象。【参考代码】int1=500 #定义变量int1,赋值为500int2=500 #定义变量int2,赋值为500int3=520 #定义变量int3,赋值为520print('int1和int2引用的是同一对象?',int1isint2)print('int1和int3引用的是同一对象?',int1isint3)print('int1的内存地址:',id(int1),'\nint2的内存地址:',id(int2),'\nint3的内存地址:',id(int3))int1=520 #修改int1的值为520print('修改值后的int1和int3引用的是同一对象?',int1isint3)print('修改值后的int1内存地址:',id(int1))任务二【运行结果】

程序运行结果如图2-6所示。

图2-6例2-4程序运行结果【程序说明】

id()函数返回对象的唯一标识符,即对象的内存地址。任务二Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。Python中的小整数是指在[-5,256]区间的整数,这些整数对象是提前创建好的,不会被回收。在一个Python程序中,所有相同的小整数都是同一个对象。当数值不在小整数对象池内时,会自动创建新的对象。但是,此时会有一个大整数池,即处于同一个代码块(一个代码块就是一个.py文件)的相同的大整数是同一个对象。

同理,Python中相同的单个字符也是同一个对象,处于同一个代码块的相同的浮点数,以及具有相同元素的字符串和元组都是同一个对象。任务二

所谓位运算是指进行二进制位的运算。例如,将一个存储单元中的各二进制位左移或右移一位。Python提供的位运算符包括按位与、按位或、按位异或、按位取反、左移和右移共6种,如表2-7所示。运算符名称示例说明&按位与a&ba和b对应的两个二进制位均为1时,结果才为1,否则为0|按位或a|ba和b对应的两个二进制位有一个为1时,结果就为1,否则为0^按位异或a^ba和b对应的两个二进制位不同时,结果为1,否则为0~按位取反~a先求a的补码,然后将补码的每个二进制位取反,最后再求补码<<左移a<<ba的二进制位全部左移b位,移出位删掉,移进的位补零>>右移a>>ba的二进制位全部右移b位,移出位删掉,移进的位补零表2-7位运算符七、位运算符任务二

假设变量a=10,b=23,即二进制形式a=00001010,b=00010111。用变量a和b执行表2-7中的位运算符,结果如图2-7所示。(a)按位与a&b(b)按位或a|b(c)按位异或a^b

(d)按位取反~a(e)按位左移a<<2(f)按位右移a>>2图2-7位运算符任务二Python中操作数按位取反的结果是?(a+1),其中a为操作数。例如,10按位取反为?11,?10按位取反为9。

在计算机系统中,为了便于对数值进行处理,数值一律是用补码表示(存储)的。其中,正数的补码与原码相同,符号位为0;负数的补码的符号位为1,其余位为该数绝对值的原码按位取反加1。例如,+10的补码为00001010;对于?10来说,其符号位为1,由于+10的原码为0001010(7位),则该数取反后为1110101,然后再加1,结果为1110110,即?10的补码为11110110。任务二Python中运算符的优先级如表2-8所示。优先级顺序运算符优先级顺序运算符1**8>、<、>=、<=2~、+(正号)、?(负号)9==、!=3*、/、%、//10=、+=、?=、*=、/=、%=、**=、//=4+(加法)、?(减法)11is、isnot八、运算符优先级表2-8运算符优先级5<<、>>12in、notin6&13and、or、not7^、|

任务实施

完成本任务,可先定义整型变量a和b,将a左移b位,然后加b,最后乘以b,完成数据的加密;再将加密后的a整除b,然后减b,最后右移b位,还原a的原始值,完成数据的解密。开发“你问我答”游戏任

“你问我答”游戏想要实现的功能是计算机输出问题,用户输入答案,然后计算机判断答案是否正确并输出。此程序的关键是用户与计算机的交互,即输入与输出。本任务将带领大家编写Python程序,开发“你问我答”游戏。任务三开发“你问我答”游戏任务描述知识链接一、输入

Python提供了input()函数用于获取用户从键盘输入的字符串,其基本格式如下。input([prompt])输入和输出

其中,prompt表示输入提示,是一个字符串,[]表示可选。input()函数让程序暂停运行,等待用户输入数据,当获取用户输入后,返回一个字符串(不包含末尾的换行符)。例如:

name=input('请输入名字:') #name为字符串

当将该返回值作为数值使用时,就会引发错误,此时可使用int()函数将字符串转换为整型数据,也可使用float()函数将字符串转换为浮点型数据。例如:

a=int(input('请输入一个整数')) #a为整数

b=float(input('请输入一个浮点数:')) #b为浮点数

这里需要注意的是,使用int()函数时,参数须是整型数值的字符串。任务三int()函数还可以将浮点型数据转换为整型数据,例如:

a=int(1.35) #a的值为1(1)输出字符串时须用单引号或双引号括起来。(2)输出变量时,可不加引号。(3)变量与字符串同时输出或多个变量同时输出时,须用“,”隔开。【例2-5】输出万能生日祝福。【问题分析】使用input()函数输入名字,使用print()函数输出对应名字的生日祝福。【参考代码】print('请输入名字:') #输出提示#根据输入的名字输出生日祝福print('亲爱的',input(),':\n\t生日快乐!?\n\t希望你能开心快乐每一天!???')在Python中使用print()函数进行输出,应遵循以下原则。二、输出任务三任务三。

图2-9

例2-5程序运行结果【运行结果】

程序运行结果如图2-9所示任务实施完成本任务,可首先使用print()函数输出问题;然后使用input()函数输入答案;最后使用“==”或“in”运算符判断答案是否正确,并使用print()函数输出判断的结果,True表示正确,False表示错误。本项目主要介绍了Python的基础知识。通过本项目的学习,读者应重点掌握以下内容。(1)变量名只能包括字母、数字和下划线,且第一个字符必须是字母或下划线,不能是数字。(2)Python中的变量赋值不需要声明类型,且变量使用前必须先赋值,因为变量指向的内存对象只有在赋值后才会被创建。(3)Python的数字类型包括int(整型)、float(浮点型)和complex(复数型)3种;布尔类型只有“True”和“False”两种值;字符串是以单引号或双引号括起来的任意文本。(4)Python常用的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符、成员运算符、身份运算符和位运算符。(5)input()函数用于获取用户键盘输入的字符,print()函数用于输出数据。项目二结项目小结

温馨提示

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

评论

0/150

提交评论