实训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”文件中。文章来源:https://www.toymoban.com/news/detail-481508.html
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模板网!