实训一:Python基础知识实训指导书(新版)

本文由用户“jyxue_cool”分享发布 更新时间:2021-11-08 14:49:48 举报文档

以下为《实训一:Python基础知识实训指导书(新版)》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

实验(训)项目一:Python基础知识

一、实验(训)目的

(一)了解Python语言的基本语法和编码规范;

(二)掌握Python语言的数据类型、运算符、常量、变量、表达式和常用语句等基础知识;

(三)掌握运算符的计算方法,掌握标准输入、输出方法的使用;

(四)学习Python常用语句。

二、实验(训)预习要求

(一)提前预习Python语言的基础语法知识,实验之前编写好程序代码。

(二)练习使用常量和变量、运算符和表达式、常用语句。

三、实验(训)教学方法

(一)任务驱动式教学方法;

(二)探究式教学方法;

(三)自主学习与网络协作教学方法等。

四、实验(训)教学手段

演示法、实验法、参与式教学方法相结合。

五、实验(训)仪器及设备

(一)计算机一台;

(二)python-3.7.3安某某包;

(三)pycharm-community-2019.1社区版安某某包。

六、实验(训)内容和步骤

(一)Python的安某某

访问http://doc.001pp.com/download/下载页面,在该页面上可以下载在Windows,Linux/UNIX,MacOSX等操作系统上安某某的版本。安某某在Windows操作系统通常安某某 windows X86-64 executable installer或windows X86-64 web-based installer。下载完后,单击下载文件进行安某某。

安某某过程如下:

1.点击运行下载后的文件python-3.7.2-amd64-webinstall,打开如图1.1所示的安某某方法选择对话框,此处选择Customize installation

注意:在该对话框下面有2个选项框,默认选择了第1项,请把第2项也选择,这样安某某完成后就不要再设置环境变量了。

图1.1安某某方法选择对话框

2.单击“next”按钮,打开图1.2所示“OptionalFeatures”对话框,先选择默认选项。



图1.2 OptionalFeatures对话框

3.单击“next”按钮,打开图1.3所示的“Advanced Features”对话框,先选择默认选项。然后确认安某某目录,单击“Install”

安某某完后,按win+r键,打开运行对话框,在框中输入cmd切换到DOS界面,在DOS界面输入python,按回车键,出现下面的内容表示安某某成功。用户就可以在“>>>”后输入代码了。

注意:该界面是Python的交互器模式,输入print( “helloworld!!!”)后回车就会输出hello world!!!

Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> print("hello world!!")

hello world!!

>>>

(二)Pycharm的安某某与使用

PyCharm安某某过程是:

1.登录https://doc.001pp.com/pycharm/官网,下载pycharm社区版安某某包。

2.单击安某某包安某某,然后用记事本打开hosts文件,Windows系统hosts文件路径为:c:\windows\system32\drivers\etc,文件内容如下。将0.0.0.0 account.jetbrains.com添加到hosts文件最后。

3.打开Pycharm,进入激活界面,选择activation code,填入下面注册码,确定后完成注册,如图1.3所示。

图 1.3Pycharm注册界面

4.启动Pycharm,就可以进行项目开发了。

5.PyCharm的启动与项目创建

(1)安某某好Pycharm后,在桌面上双击Pycharm图标就可以启动Pycharm,启动后出现如图1.4所示的对话框。

图1.4Pycharm启动对话框

(2)选择“Create New Project”,打开如图1.5所示的对话框。在该对话框中输入项目名、路径、选择python解释器。如果没有出现python解释器,进入步骤3。



图1.5定义项目对话框

(3)选择python解释器。可以看到,一旦添加了python解释器,pycharm就会扫描出你已经安某某的python扩展包,和这些扩展包的最新版本,如图1.6所示。



图1.6python解释器选择对话框

(4)点击OK按钮之后,就会创建一个空项目,里面包含一个.idea的文件夹,用于pycharm管理项目。

(三)猜数字游戏

编写程序随即生成一个0-100之间的随机数。程序提示用户输入一个数字,不停猜测,直到猜对为止。最后输出猜测的数字和猜测的次数。如果用户没有猜中要提示用户猜的值是大了还是小了。

1.实现思路:

(1)通过random函数生成随机数,通过input函数输入猜的数字;

(2)通过if,elif,else对输入的数字进行判断。

2.参考代码:



生成随机整数的方法还可以用列表生成式 [x for x in range(0,101)],使用shuffle(lst)返回一个随机数,具体实现方式如下:

List1=shuffle([x for x in range(0,101)])

Num=List1[0]

(四)模拟简单银行ATM机工程程序的实现

编程简单模拟银行ATM机的功能,ATM功能菜单如图所示。

1.实现思路:

实现ATM机的功能,需要构建了一个两级字典。该字典名称为atm_dic,这个字典中的每个元素的键值又是一个字典,如‘取款’键值是一个字典,字 典中的’action’键用于描述客户发生“取款”时,剩余资金是做加法(plus)还是做减法(minus)得到,键‘interest’的值标记发生本次行为的利率。定义的字典如下:

atm_dic={ '取款':{'action':'minus','interest':0}, '存款':{'action':'plus','interest':0}, '转账':{'action':'minus','interest':0.005}, '付款':{'action':'minus','interest':0.005}, '消费':{'action':'minus','interest':00}

2、参考代码:

print(''' **************************************** * 1: 取款 * * 2: 存款 * * 3:转账 * * 4:付款 * * 5:消费 * * 0: 退出 * **************************************** ''') atm_dic={ '取款':{'action':'minus','interest':0}, '存款':{'action':'plus','interest':0}, '转账':{'action':'minus','interest':0.005}, '付款':{'action':'minus','interest':0.005}, '消费':{'action':'minus','interest':00} } cmd_dic={ '1':'取款', '2':'存款', '3':'转账', '4':'付款', '5':'消费'} balance=10000 while True: cmd=input('请选择操作:') if eval(cmd)==0: break if cmd not in cmd_dic: continue action=atm_dic[cmd_dic[cmd]]['action'] print('你好,你选择的操作是:',cmd_dic[cmd],'\n') interest=atm_dic[cmd_dic[cmd]]['interest'] #print(cmd_dic['1'],interest) num=eval(input("请输入金额:")) interest=num*interest if action=='plus': balance=balance+interest+num else: balance=balance-interest-num print(balance)

(五)城市、地铁线路、线路站点三级查询系统的开发

(五)开发一个实现城市、地铁线路、线路站点三级查询的系统。

一级菜单为显示编号与城市名称,二级菜单显示编号与地铁线路,三级菜单显示线路站点。三级菜单分别如图1.7,1.8,1.9所示。在一级与二级菜单中直接输入菜单中的数字编号进入下一级菜单,按B或b返回上一级,按Q或q退出查询系统。







实现思路:

1.要实现三级查询,最好的方法就是字典来组织城市、地铁线路与站点数据,以XX、XX、XX、XX为例设计字典如下:



2.读取字典的keys是一个列表,所以使用for循环读取字典第一级的keys,并打印出来,代码如下:

3.在显示的菜单项前需要在前面加上编号,使用enumerate自动编号,并***。代码如下:

city_list.append(city)#把城市名城加入一个列表里面 print(city_list)

4.让用户输入编号,如果不是数字,提示错误,如果输入数字不在里面也提示错误,让重新输入。代码如下:

if c_city.isdigit():#判断输入是否为数字,数字转换成int类型 c_city = int(c_city) if c_city 0:#判断输入编号是否存在

5.如果数字存在的话就打印选择的对应的values 的keys,因为要实现的是数字,所以把一级菜单存入了一个列表中,而且也知道了它的索引v-1,打印即可。

代码如下:

for x,xian in enumerate(china_ditie[city_list[c_city-1]].keys(),1):#循环城市下地铁线路名称

print(x,xian)#打印线路名称

xian_list.append(xian)#将线路加入到线路列表中

6.注意输入退出和b的对应级别,每层需要加入循环才可以实现返回上一级别,python是需要缩进的。

del city_list[:] # ***有数据

del xian_list[:] # 删除线路列表内的数据

参考代码:

7.每次返回记得将列表的数据全部清空。代码如下:

china_ditie={"XX":{"一号线":["四惠","大望路","天安门","西单"], "二号线":["XX站", "朝阳门", "东直门", "西直门"], "三号线": ["国贸", "XX桥", "知春路", "巴沟"] }, "XX": { "四号线": ["徐家汇", "人民广场", "延长路", "共康路", "XX路"], "五号线": ["XX路", "XX寺", "江某某", "虹桥火车站"], "六号线": ["XX路", "XX路", "曹某某", "虹桥路", "宜山路"] }, "XX": { "七号线": ["XX口", "农讲所", "烈士陵园", "公园前", "体育西路"], "八号线": ["黄某某", "纪念堂", "XX里", "白云公园"], "九号线": ["XX顶", "XX路", "一德路", "文化公园"] }, "XX": { "一号线": ["高某某", "桃园", "白某某", "华侨城"], "四号线": ["白某某", "明某某", "少年宫", "XX"], "五号线": ["大学城", "兴东", "西里", "XX北站"] } } import time start = True city_list =[] #用于存储一级菜单的列表(城市) xian_list =[] #用于存储二级菜单的列表(线路) print("\033[31;1m欢迎访问地铁查询系统\033[1m".center(40,"="))#给输入的内容加颜色 while start : #死循环 print("".center(36,"=")) # 循环输出字典中的城市,用到了枚举,v表示城市的编号,city表示对应的城市,并且编号从1开始 for v,city in enumerate(china_ditie.keys(),1) : print(v,city) #打印城市列表并编号 city_list.append(city) #把城市名称存储到一级菜单的列表里 print("退出 \033[31;1mq\033[1m") #提示语句退出按q print("".center(36,"=")) # 生成分隔符 c_city=input("请选择你要查询的城市编号:") #输入城市编号 print("".center(36,"="))#生成分隔符 if c_city == "q" or c_city == "Q" :#打印城市列表选择Q退出

break if c_city.isdigit() :#判断是否为数字,数字转换成int类型 c_city=int(c_city) if c_city 0 :#判断输入编号是否存在 while start : # ***for基于enumerate的索引,格式固定) for x,xian in enumerate(china_ditie[city_list[c_city-1]].keys(),1): print(x,xian) #打印线路名称,x在此处只是一个数 xian_list.append(xian) #将线路加入到线路列表中 print("返回上一级\033[31;1mb\033[1m,退出 \033[31;1mq\033[1m") print("".center(36,"="))#分割线 c_xian = input("请选择你要查询的线路:") #让用户输入查询的线路 print("".center(36,"="))#分割线 if c_xian == "b" or c_xian == "B" :#退出当前循环返回上一级 del city_list[:] #***有数据 del xian_list[:] #删除线列表中的所有数据 break elif c_xian == "q" or c_xian =="Q" :#退出程序 start = False elif c_xian.isdigit() : #输入的数字变成int类型 c_xian=int(c_xian) if c_xian 0 : #判断输入的是否在列表长度范围内 while start : # 循环字典中地铁的名称 for name in china_ditie[city_list[c_city-1]][xian_list[c_xian-1]]: print(name) #打印字典中的内容 print("返回上一级 \033[31;1mb\033[1m,退出 \033[31;1mq\033[1m") print("".center(36,"=")) #分割线 c_n = input("请输入你需要的操作:") if c_n == 'b' or c_n =='B' : del xian_list[:] break 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 _list[:] print("\033[31;1m输入错误,请输入数字!\033[1m") time.sleep(1) else : #输入错误提示并刷新城市列表 del city_list[:] print("\033[31;1m没有此城市或者输入错误!\033[1m") time.sleep(1) else : #输入错误提示并刷新城市列表 del city_list[:] print("\033[31;1m没有此城市或者输入错误!\033[1m") time.sleep(1)

七、实验(训)报告要求与思考题

按照实训要求进行正确编程并书写实训报告,并思考以下两个问题:

1. Python与C和Java语言在基本语法和编码规范方面有何异同,编码过程中要如何避免踩坑?

2.Python与C和Java语言标准输入、输出方法的异同,在使用的过程的中要注意什么?

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《实训一:Python基础知识实训指导书(新版)》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览