python实训报告

这篇具有很好参考价值的文章主要介绍了python实训报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实训1 Python基础知识实训

1.安装Python解释器,使用pycharm编写 Hello world 程序。
2.数字求和,编写一个程序,通过用户输入两个数字,并计算这两个数字之和。

num1=input("请输入第1个数字:")
 	num2=input("请输入第2个数字:")
 	sum=float(num1)+float(num2)
 	print("数字%s和%s相加之和是%.1f"%(num1,num2,sum))

3.编写程序,要求输入三角形的三条边(假设给定的三条边符合构成三角形的条件:任意两边之和大于第三边),计算三角形的面积并输出。

import math				#导入math模块
a=int(input("请输入三角形的第一条边:"))	#输入第一条边并将其转换为整型
b=int(input("请输入三角形的第二条边:"))	#输入第二条边并将其转换为整型
c=int(input("请输入三角形的第三条边:"))	#输入第三条边并将其转换为整型
s=1/2*(a+b+c)				#计算s
area=math.sqrt(s*(s-a)*(s-b)*(s-c))		#调用sqrt函数计算面积
print("此三角形面积为:",area)		#输出三角形面积

4.编写程序,实现输入用户姓名、年龄和地址,然后使用print()函数输出。

name = input("请输入姓名:")
age = int(input("请输入年龄:"))
address = input("请输入地址:")
print(name,'今年',age,'岁,','地址是',address,'。')

实训2 常用数据类型及函数实训

1.编写一个简易计算器,要求根据输入的数字和四则运算符,计算运算结果并输出。

operator_list = ['+','-','*','/']			#创建列表并赋值四则运算符
number_1 = float(input("请输入第一个操作数:"))	#获取第一个操作数
operator = input("请输入运算符:")		#获取运算符
number_2 = float(input("请输入第二个操作数:"))	#获取第二个操作数
#判断用户输入的运算符并进行计算,将结果赋值给变量result
if operator not in operator_list:			#输入的运算符不是四则运算符
    print("输入的运算符有误,请输入四则运算符!")	#输出提示语
else:					#输入的运算符属于四则运算符
    if operator == '+':				#运算符为“+”
        result = number_1 + number_2		#两数相加的值赋给变量result
    elif operator == '-':			#运算符为“-”
        result = number_1 - number_2		#两数相减的值赋给变量result
    elif operator == '*':			#运算符为“*”
        result = number_1 * number_2		#两数相乘的值赋给变量result
    elif operator == '/':			#运算符为“/”
        result = number_1 / number_2		#两数相除的值赋给变量result
    print(number_1,operator,number_2,"=",result)#将两个操作数的运算结果输出

2.编写一个登录验证程序,要求:(1)输入用户名密码;(2)认证成功显示登录信息;(3)同一个用户输错3次密码后被锁定,并退出程序。

count =0						#定义count变量并赋初值为0
passwd=123					#定义passwd变量并赋初值为123
dict1={'alex':[passwd,count],'Tom':[passwd,count]}	#定义字典用于存储用户信息
while True:					#开始循环
    name = input("please input your name:")		#输入用户名
    password = int(input("please input your password:"))	#输入密码
    if name not in dict1.keys():			#如果输入的用户名不在字典中
        print("name %s is not in dict"%name)		#输出提示语
        break					#跳出循环
    if dict1[name][1] > 2:				#如果次数大于2
        print("the name %s locked"%name)		#输出被锁定提示信息
        break					#跳出循环
    if password == dict1[name][0]:			#如果输入的密码正确
        print("login ok")				#输出登录成功提示语
        break					#跳出循环
    else:						#密码输入错误
        print("name or passwd error")			#输出提示语
        dict1[name][1] +=1				#次数加1

3.编写一个模拟三级菜单的程序,要求:(1)打印省、市、县三级菜单;(2)可返回上一级;(3)可随时退出程序。

data = {
    '北京': {
        '昌平':
            {
                '沙河': ['沙河机场', '链家'],
                '天通苑': ['北方明珠', '天通尾货']
            },
        '朝阳':
            {
                '花家地': ['朝阳公园', '望京soho'],
                '北小河': ['北小河公园', '北京中学']
            }
    },
    '上海': {
        '虹桥':
            {
                '虹桥机场': ['超市', '特产店', '水吧'],
                '东方明珠': ['电影院', '游泳馆', '餐馆']
            },
        '浦东':
            {
                '景秀路': ['世纪公园', '立交桥'],
                '中环路': ['鲁迅公园', '同济大学']
            }
    },
    '河北': {
        '石家庄':
            {
                '行唐': ['东正', '阳关'],
                '赵县': ['赵州桥', '高村乡']
            },
        '唐山':
            {
                '滦南县': ['司各庄镇', '安各庄镇'],
                '玉田县': ['玉田镇', '亮甲店镇']
            }
    }
}
while True:
    for i in data:			#打印第一级列表
        print(i)
    choice = input("请选择省或直辖市(退出请按q):")
    if choice in data:			#如果在第一级列表里则进入下一级列表
        while True:
            for i2 in data[choice]:		#打印第二级列表
                print(i2)
            choice2 = input("请选择(退出请按q返回省或直辖市列表请按b):")
            if choice2 in data[choice]:		#如果在第二级列表里则进入下一级
                while True:
                    for i3 in data[choice][choice2]:	#打印第三级列表
                        print(i3)
                    choice3=input("请选择(退出请按q返回上一级列表请按b):")
                    if choice3 in data[choice][choice2]:
                        for i4 in data[choice][choice2][choice3]:
                            print(i4)
                        choice4 = input("已经到达最后一级(退出请按q返回上一级列表请按b):")
                        if choice4 == 'b':
                            continue
                        elif choice4 == 'q':
                            exit()
                    elif choice3 == 'b':		#从第三级返回第二级
                        break
                    elif choice3 == 'q':
                        exit()
            elif choice2 == 'b':			#从第二级返回第一级
                break
            elif choice2 == 'q':
                exit()
    elif choice == 'q':
        exit()

4.编写一个简单的学生管理系统,实现增加学生信息、删除学生信息、修改学生信息、展示学生信息。

stuInfos=[]			#用来保存学生的所有信息
def printMenu():			#打印功能提示
    print("="*20)
    print(" 学生管理系统V1.0 ")
    print("1.添加学生信息")
    print("2.删除学生信息")
    print("3.显示所有学生信息")
    print("0.退出系统")
    print("="*20)
#添加一个学生信息
def addStuInfo():
    newNum = input("请输入新学生的学号:")	#提示并获取学生的学号
    newName = input("请输入新学生的姓名:")	#提示并获取学生的姓名
    newSex = input("请输入新学生的性别(男/女):")	#提示并获取学生的性别
    newInfo = {}				#定义字典
    #赋值
    newInfo['num'] = newNum
    newInfo['name'] = newName
    newInfo['sex'] = newSex
    stuInfos.append(newInfo)			#将元素添加到列表中
#删除一个学生信息
def delStuInfo(student):
    del_num = input("请输入要删除的学生的学号:")	#提示并获取学生学号
    for stu in student:				#遍历列表
        if stu['num'] == del_num:			#判断是否与输入的学号相同
            student.remove(stu)			#删除该学生信息
#显示所有学生信息
def showStuInfo():
    print("=" * 20)
    print("学生的信息如下:")
    print("=" * 20)
    print("序号    学号    姓名   性别")
    i = 1
    #遍历存储学生信息的列表,输出每个学生的详细信息
    for tempInfo in stuInfos:
        print("%d      %s      %s     %s" % (i, tempInfo['num'],tempInfo['name'], tempInfo['sex']))
        i += 1
#main函数控制整个程序的流程
def main():
    while True:
        printMenu()			#打印功能菜单
        key = input("请输入功能对应的数字")	#获取用户输入
        if key == '1':			#添加学生信息
            addStuInfo()
        if key == '2':			#删除学生信息
            delStuInfo(stuInfos) 
        elif key == '3':			#显示学生信息
            showStuInfo()
        elif key == '0':			#退出循环
            quit_con = input("确定退出吗?(Yes or No):")
            if quit_con == 'Yes':
                break
main()				#调用main函数

实训3 面向对象实训

1.创建三个游戏角色,分别是:(1)小A,女,18,初始战斗力1000;(2)小B,男,20,初始战斗力1800;(3)小C,女,19,初始战斗力2500。游戏场景,分别是:(1)草丛战斗,消耗200战斗力;(2)自我修炼,增长100战斗力;(3)多人游戏,消耗500战斗力。请编写程序模拟游戏场景。

class Person:
    def __init__(self, na, gen, age, fig):
        self.name = na
        self.gender = gen
        self.age = age
        self.fight =fig 
    def grassland(self): 
        self.fight = self.fight - 200 
    def practice(self):
        self.fight = self.fight + 100
    def incest(self):
        self.fight = self.fight - 500 
    def detail(self):
        temp = "姓名:%s ; 性别:%s ; 年龄:%s ; 战斗力:%s"  % (self.name, self.gender, self.age, self.fight)
        print(temp) 
# #####################  开始游戏  #####################
a = Person('小A', '女', 18, 1000)    # 创建小A
b = Person('小B', '男', 20, 1800)  # 创建小B
c = Person('小C', '女', 19, 2500)      # 创建小C
a.incest() #小A参加一次多人游戏
b.practice()#小B我修炼了一次
c.grassland() #小C参加一次草丛战斗
#输出当前所有人的详细情况
a.detail()
b.detail()
c.detail()

2.编写程序,模拟猫狗大战,要求:(1)可创建多个猫和狗的对象,并初始化每只猫和狗(包括昵称、品种、攻击力、生命值等属性)。(2)猫可以攻击狗,狗的生命值会根据猫的攻击力而下降;同理狗可以攻击猫,猫的生命值会根据狗的攻击力而下降。(3)猫和狗可以通过吃来增加自身的生命值。(4)当生命值小于等于0时,表示已被对方杀死。

#定义一个猫类
class Cat:
    role = 'cat'			#猫的角色属性都是猫
#构造方法初始化猫
    def __init__(self, name, breed, aggressivity, life_value):
        self.name = name		#每一只猫都有自己的昵称
        self.breed = breed		#每一只猫都有自己的品种
        self.aggressivity = aggressivity	#每一只猫都有自己的攻击力
        self.life_value = life_value		#每一只猫都有自己的生命值
#定义猫攻击狗的方法
    def attack(self,dog):
        dog.life_value -= self.aggressivity	#狗的生命值会根据猫的攻击力而下降
#定义增长生命值的方法
    def eat(self):
        self.life_value += 50
#定义判断是否死亡的方法
    def die(self):
        if self.life_value <= 0:		#如果生命值小于等于0表示已被对方杀死
            print(self.name,'已被杀死!')
        else:
            print(self.name,'的生命值还有',self.life_value)
#定义一个狗类
class Dog:  
    role = 'dog'			#狗的角色属性都是狗
#构造方法初始化狗
    def __init__(self, name, breed, aggressivity, life_value):
        self.name = name		#每一只狗都有自己的昵称
        self.breed = breed		#每一只狗都有自己的品种
        self.aggressivity = aggressivity	#每一只狗都有自己的攻击力
        self.life_value = life_value		#每一只狗都有自己的生命值
#定义狗攻击猫的方法
    def bite(self,cat):
        cat.life_value -= self.aggressivity	#猫的生命值会根据狗的攻击力而下降
#定义增长生命值的方法
    def eat(self):
        self.life_value += 30
#定义判断是否死亡的方法
    def die(self):
        if self.life_value <= 0: 		#如果生命值小于等于0表示已被对方杀死
            print(self.name,'已被杀死!')
        else:
            print(self.name,'的生命值还有',self.life_value)
#创建实例
cat_1 = Cat('Mily','波斯猫',30,1500)	#创造了一只实实在在的猫
dog_1 = Dog('Lucky','哈士奇',50,900)	#创造了一只实实在在的狗
cat_1.die()				#输出猫的当前状态
dog_1.die()			#输出狗的当前状态
print('------开始战斗-----')
cat_1.attack(dog_1)			#猫攻击狗一次
dog_1.bite(cat_1)			#狗攻击猫一次
cat_1.die()				#输出猫的当前状态
dog_1.die()			#输出狗的当前状态
for i in range(29):			#循环实现,猫攻击狗29次
    cat_1.attack(dog_1)
dog_1.die()			#输出狗的当前状态
cat_1.eat()				猫吃东西一次
cat_1.die()				#输出猫的当前状态

实训4 网络爬虫

爬取百度搜索“Python程序设计教程”的结果,并将搜索结果保存到“12-4.txt”文件中。

import requests			#导入requests库
from bs4 import BeautifulSoup	#从bs4库中导入BeautifulSoup类
import re			#导入re模块
import json			#导入json库
#定义函数,根据填写的url参数获取数据
def getKeywordResult(keyword):
    url = 'http://www.baidu.com/s?wd='+keyword
    #异常处理
    try:
        r = requests.get(url, timeout=30)#使用get函数打开指定的url
        r.raise_for_status()		#如果状态不是200,则引发异常
        r.encoding = 'utf-8'		#更改编码方式
        return r.text			#返回页面内容
    except:
        return ""			#发生异常返回空字符
#定义数据解析函数,用于找到符合条件的数据并返回
def parserLinks(html):
    soup = BeautifulSoup(html, "html.parser")	#将html对象转换为BeautifulSoup对象
    links = []				#定义列表用于存储数据
    #找到所有符合条件的信息并遍历
    for div in soup.find_all('div', {'data-tools': re.compile('title')}):
        data = div.attrs['data-tools']		#获得属性值
        d = json.loads(data)			#将属性值转换成字典
        links.append(d['title'])			#返回数据加到列表之后
    return links				#返回列表数据
#定义main函数,用于调用函数并将得到的数据写入文件
def main():
    html = getKeywordResult('Python程序设计教程')	#调用获取页面内容函数
    ls = parserLinks(html)			#调用解析数据函数
    count = 1
    with open('12-4.txt','w') as fd:		#将数据写入12-4.txt文件中
        for i in ls:
            fd.write('[')
            fd.write(str(count))
            fd.write(']')
            fd.write(i)				#写入文件
            fd.write('\n')
            count += 1
    print('写入文件成功!')
main()					#调用main函数

实训报告到这里结束,有需要的可以随意。文章来源地址https://www.toymoban.com/news/detail-481508.html

到了这里,关于python实训报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python基础知识二

    5.1认识组合数据类型 序列类型:列表、元组、字符串 — 支持双向索引 集合类型:集合 — 确定性、互异性、无序性;放入集合中的元素必须为不可变类型(数字类型,字符串,元组) 映射类型:字典 — 键值对的形式存在,键必须为不可变类型(数字类型,字符串,元组)

    2024年02月05日
    浏览(35)
  • python基础知识

    python基础精讲 本专栏主要针对python基础语法,帮助学习者快速接触并掌握python大部分最重要的语法特征。 1、基本数据类型和变量 2、分支结构与循环结构 3、函数与异常处理 4、类与模块 5、文件读写 通过本专栏可以快速掌握python的基础语法。 1、enumerate()是python的内置函数;

    2024年01月19日
    浏览(49)
  • 【Python数据分析】Python基础知识篇

    🎉欢迎来到Python专栏~Python基础知识篇 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: Python学习专栏 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ Python技能树:Python入门技能树。

    2024年02月16日
    浏览(50)
  • 【Python】Django 基础知识

    提示:阅读本章之前,请先阅读目录 默认端口:8000 如果想指定端口 浏览器,发起请求,请求路径:http://localhost:8000/index django,接受到浏览器请求,去读取urls.py文件 urls文件里面的urlpatterns,判断当前的index,是否包含,不包含则统一转404,如包含,则根据django自己封装的

    2024年02月09日
    浏览(54)
  • Python基础知识入门(五)

    Python基础知识入门(一) Python基础知识入门(二) Python基础知识入门(三) Python基础知识入门(四)         模块是一个包含所有定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数、变量等功能来完成数据处理。 1.模块导入    

    2024年02月02日
    浏览(40)
  • Python基础知识+WebAPI

    代码: Before reset_index: date 2016/7/7 22:00    7.00075 2016/7/7 23:00    7.99975 2016/7/8 00:00    8.99875 2016/7/8 01:00    9.99775 dtype: float64 After reset_index and rename columns:              date  data_value 0  2016/7/7 22:00     7.00075 1  2016/7/7 23:00     7.99975 2  2016/7/8 00:00     8.99875 3  2016/7/8 01:00    

    2024年04月12日
    浏览(31)
  • Python基础知识入门(二)

    Python基础知识入门(一) Python基础知识入门(三) Python基础知识入门(四) Python基础知识入门(五)         Python 数字数据类型用于存储数值。数据类型是不允许改变,如改变数字数据类型的值,将重新分配内存空间。 1.数字函数 函数  描述  abs(x) 返回数字的绝对值。

    2024年02月22日
    浏览(39)
  • Python基础知识汇总(集合)

    Python中的集合用于保存不重复元素,分为可变集合(set)和不可变集合(frozenset)两种。 本文主要是讲可变集合set的常用操作,包括创建集合、集合中添加元素和删除元素、集合的交集、并集和差集运算等。 set集合是无序可变序列,集合的所有元素都放在一对大括号“{}”中

    2023年04月26日
    浏览(31)
  • python基础知识(八):字典

    在Python中,字典是一系列键—值对。每个键都与一个值相关联,值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 字典的创建方法常用花括号生成也可以使用函数dict()创建。 字典元素的获取常用键来获取或者使用get()函数获取。 删除字典元素使用del。

    2024年02月08日
    浏览(47)
  • 【Python】Django 基础知识 一

    提示:阅读本章之前,请先阅读目录 默认端口:8000 如果想指定端口 浏览器,发起请求,请求路径:http://localhost:8000/index django,接受到浏览器请求,去读取urls.py文件 urls文件里面的urlpatterns,判断当前的index,是否包含,不包含则统一转404,如包含,则根据django自己封装的

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包