实验一:编写一个Python程序,模拟一个自动柜员机(ATM)验证用户输入密码的操作。ATM提示用户输入密码,如果用户输入正确密码,ATM输出密码正确信息,然后终止程序。

#exp1_1
def main():val = eval(input("请输入您的密码(六位数字):"))for i in range(3):if val == password:print("密码输入正确!")print("登陆成功!")breakelse:if i< 2 :print("密码输入不正确,还有%d次机会"%(2-i))else:print("密码输入不正确,账户已冻结!")breakval = eval(input("请输入您的密码(六位数字):"))
if __name__=='__main__':print("--------------------------------------------------")print("欢迎来到,亲爱的用户!")password = 666666main()

运行结果

实验二:写一个函数,测试三条边(三个整数)是否构成直角三角形

#exp2_1
def is_right_triangle_v1(s1,s2,s3):#函数代码和数据出结果的代码if isinstance(s1,int) and isinstance(s2,int) and isinstance(s3,int) :if (s1 > 0) and (s2 > 0) and (s3 > 0):if( s1**2 == s2**2 + s3**2)or( s2**2 == s1**2 + s3**2)or( s3**2 == s1**2+s2**2):print("这是一个直角三角形!")else:print("这不是个直角三角形!")else:print("错误!输入的数据包含非整数和非正数!")else:print("错误!输入的数据包含非整或非正数")#调用is_right_triangle_v1函数代码
if __name__=='__main__':    s1,s2,s3=eval(input("请输入这个三角形的三边长:"))is_right_triangle_v1(s1,s2,s3)
#exp2_2
def is_right_triangle_v2(sides):#调用is_right_triangle_v2函数代码if isinstance(sides[0],int) and isinstance(sides[1],int) and isinstance( sides[-1],int) :if (sides[0] > 0) and (sides[1] > 0) and ( sides[-1] > 0):if( sides[0]**2 == sides[1]**2 +  sides[-1]**2)or( sides[1]**2 == sides[0]**2 +  sides[-1]**2)or(  sides[-1]**2 == sides[0]**2+sides[1]**2):print("这是一个直角三角形!")else:print("这不是个直角三角形!")else:print("错误!输入的数据包含非整数和非正数!")else:print("错误!输入的数据包含非整或非正数")#调用is_right_triangle_v2函数代码
if __name__=='__main__':    s1,s2,s3=eval(input("请输入这个三角形的三边长:"))sides = [s1,s2,s3]is_right_triangle_v2(sides)

运行结果

实验三

(1)如果 lst1 和 lst2 的元素完全相同则返回 True 否则返回 False,不考虑元素顺序。

#exp3_1
from collections import Counter
def check_same(lst1,lst2):#函数if (len(lst1)) != (len(lst2)):return Falseelse:lst1 = Counter(lst1)lst2 = Counter(lst2)if dict(lst1) == dict(lst2):return Trueelse:return False
#调用函数
if __name__=='__main__':    print('列表1:')a=input().split(",")print(a)print('列表2:') b=input().split(",")print(b)print(check_same(a,b))

运行结果

(2)lst 中满足函数 func 中给定条件的元素的下标。

#exp3_2
from collections import Counter
def find_all(lst,func):#函数p_list = []for x in lst:if func(x) :p=lst.index(x)p_list.append(p)return p_list#示例function
numbers=[2,4,9,10,-12,6]
print(find_all(numbers,lambda n:n>0))

运行结果

实验四

(1)字典中最大值(value)对应的键(key),字典中最小值对应的键。

#exp4_1
def find_max(d):max1=max(d,key=d.get)min1=min(d,key=d.get)return print(f"('{max1}','{min1}')")
if __name__=='__main__':d={'Xiaoming':20,'laozhang':50,'dali':40,'kity':16}    find_max(d)

运行结果

(2)一个字典,此字典按照 d 的 key 排序。

#exp4_2
def sort(d):l=list(d.items())l.sort() d = dict(l)return d
if __name__=='__main__':d={'xiaoming':20, 'laozhang':50,'dali': 40, 'kity': 16}    print(sort(d))

运行结果

(3)一个字典,此字典是 d1 和 d2 的组合,如果两个字典的 key 相同,则将其 value 相加。

#exp4_3
def combine(d1,d2):lst=  []for key in d2:if key not in d1.keys():d1[key] = d2[key]else:d1[key]=d1[key]+d2[key]return d1
if __name__=='__main__':d1 = {'a': 90, 'b': 700, 'c':16}d2 = {'a': 60, 'b': 200, 'd':25}print(combine(d1,d2))

运行结果

实验五

(1)在源文本文件的每一行开始处添加一个行号,每个行号后有 一个空格,修改后的文本存放到目的文件 dst_file。

#exp5_1
def add_line_number(src_file,dst_file):n=0f=open(src_file,'r')lines=f.readlines()f.close()fp=open(dst_file,'w')for line in lines:fp.write(str(n+1)+' '+line)n=n+1fp.close()
if __name__=='__main__':add_line_number("1.txt","2.txt")

(2)读取一个.csv 文件并将其内容显示到屏幕。

#exp5_2
def csv_reader(csvfile):import csvf=open(csvfile,'r')#encoding='utf-8'lines=csv.reader(f,dialect='excel')for line in lines:print(",".join(line))f.close()
if __name__=='__main__':csv_reader("csvfile.csv")

实验六:创建一个Account对象,其identity为“1111”、余额为2000元、年利率为4.5%,使用withdraw方法取款100元,使用deposit方法存款5000元,然后显示余额、月利息以及这个账户的开户日期。

#exp6_1
import datetime
class Account:def __init__(self,identity='0000',balance=0.0,annual_interest_rate=0.0,date_created=0000-00):self.identity=identity#身份码self.balance=balance#余额self.annual_interest_rate=annual_interest_rate#年利率self.date_created=datetime.datetime.now()#系统时间def withdraw(self,amount_money):#取钱if self.balance>=amount_money:self.balance=self.balance-amount_moneydef deposit(self,amount_money):#存钱self.balance=self.balance+amount_moneydef get_monthly_interest(self):#计算月利息annual_interest_rate=self.annual_interest_rate/100monthly_rate=annual_interest_rate/12interests=self.balance*monthly_rateself.interests=interestsreturn interests
if __name__=='__main__':person=Account('1111',2000.0,4.5,0000-00-00)person.withdraw(100)person.deposit(5000)print("余额:{}".format(person.balance)+"元") print("月利息:{}".format(person.get_monthly_interest())+"%")print("开户时间:{}".format(person.date_created.year)+"年{}".format(person.date_created.month)+"月{}".format(person.date_created.day)+"日")

运行结果

实验七:编写 Python 脚本从文件 pythondownloads.html 中获取 Python 解释器的所有版本的版本号和发布日期,在屏幕显示结果。

#exp7_1
def get_release(html_file):from bs4 import BeautifulSoupwith open(html_file) as f:soup=BeautifulSoup(f,'lxml')div=soup.find('div',attrs={'class':['row download-list-widget']})ol=div.find('ol')li_all=ol.find_all('li')print("release-number release-date")for li in li_all:span=li.find_all('span')num=span[0].a.stringdate=span[1].stringprint(num+", "+date)
if __name__=='__main__':html_file='pythondownloads.html'get_release(html_file)

pythondownloads.html的链接https://download.csdn.net/download/qq_51870267/73725961

实验八:编写一个简化的交互式猜单词游戏程序。游戏开始时,程序随 机挑选一个单词让用户猜,并给用户规定剩余猜测次数、警告次数。(警告次数6次,猜测次数3次,将猜出的和未猜中的都要打印出来,重复猜错的要有提示)

#exp8_1
import random
import string
import sys
from collections import CounterWORDLIST_FILENAME = "words.txt"
chance=6#6次机会
warning=3#3次警告
word_guessed=''
letters_wrong=''#猜错的内容
letter_already=''#已经使用
string=string.ascii_lowercase#存储26个字符
stringlst=list(string)
wordbak =''
wordlst=[]def load_words():print("从文件加载单词...")in_file = open(WORDLIST_FILENAME, 'r')line = in_file.readline()wordlist = line.split()print("已加载", len(wordlist), "个单词")in_file.close()return wordlistdef choose_word(wordlist):return random.choice(wordlist)wordlist = load_words()def is_word_guessed(secret_word, letters_guessed):#是否全部猜对word=list(secret_word)l_s=Counter(word)l_l=Counter(letters_guessed.lower())#完整单词if dict(l_s)==dict(l_l):return Trueelse:return Falsedef get_guessed_word(secret_word, letters_guessed):#有几个被猜对了global letter_alreadyglobal letters_wrongglobal chanceglobal warningglobal wordbakglobal wordlstglobal stringglobal stringlstif letters_guessed in stringlst:stringlst.remove(letters_guessed)string1= ''.join(stringlst)if letters_guessed in letter_already:#是不是被猜过了if letters_guessed in letters_wrong:chance=chance-1word= ''.join(wordlst)print('此字母已猜过 {}'.format(word))warning=warning-1if warning<0:chance=chance-1warning=2print('-----------------------------')print('剩余警告次数{}'.format(warning))print('剩余猜字次数{}'.format(chance))print('可用字母:{}'.format(string1))else:letter_already= letter_already+letters_guessed #加入已经猜过了if letters_guessed in secret_word: #是不是猜中了for i,c in enumerate(secret_word):if c == letters_guessed:wordlst[i] = letters_guessed #已经猜中的单词word= ''.join(wordlst)print("猜对了!{}".format(word))print('-----------------------------')print('剩余猜字次数{}'.format(chance))else:letters_wrong=letters_guessed+letters_wrongword= ''.join(wordlst)print('猜错了!{}'.format(word))chance=chance-1if chance>0:print('-----------------------------')print('剩余警告次数{}'.format(warning))print('剩余猜字次数{}'.format(chance))print('可用字母:{}'.format(string1))return worddef get_available_letters(letters_guessed):#检查代码确定能有几位可以填global chanceglobal string1global warnings='abcdefghijklmnopqrstuvwxyz'if letters_guessed not in s:print("你输入的不是字母,请输入一个字母!")warning=warning-1if warning <0:chance=chance-1warning=2print('-----------------------------')print('剩余警告次数{}'.format(warning))print('剩余猜字次数{}'.format(chance))return Falsereturn True     def hangman(secret_word):global chanceglobal warningglobal wordbakglobal wordlstprint("欢迎来到猜字游戏")length=len(secret_word)print("我有一个{}".format(length)+"个字母的单词,请你猜一猜!")print("-----------------------------")print("剩余警告次数{}".format(warning))print("剩余猜字次数{}".format(chance))print("可用字母:{}".format(string))wordbak = '-' * len(secret_word)wordlst = list(wordbak)#猜的内容while True: if chance<=0:print("对不起你输了! 单词是{}".format(secret_word))breakelse: word=input("请输入一个字母:")word1=word.lower()while word1== '':word=input("请输入一个字母:")word1=word.lower()result=get_available_letters(word1)if result:words=get_guessed_word(secret_word, word1)if is_word_guessed(secret_word,words):print('恭喜你猜对了!{}'.format(secret_word))breakif __name__ == "__main__":secret_word = choose_word(wordlist)hangman(secret_word)

运行结果

word.txt链接https://download.csdn.net/download/qq_51870267/73726584

Python|实验项目八例相关推荐

  1. Python实验项目1例:使用进程池统计指定范围内素数的个数

    本周赠书活动:董付国老师Python系列教材赠书活动(40本) -------------------------------- 适用专业: 适用于计算机.网络工程.软件工程等相关专业,其他专业选做. ...

  2. Python爬虫项目100例

    前言 Python爬虫项目100例(一):入门级 CentOS环境安装 和谐图网站爬取 美空网数据爬取 美空网未登录图片爬取 27270图片爬取 蜂鸟网图片爬取之一 蜂鸟网图片爬取之二 蜂鸟网图片爬取 ...

  3. python实验项目_Python3实验 项目结构(文件操作)

    Python实验 项目结构(文件操作) 一.代码 # 姓名:池鱼奥 # 学号:201700000001 import os import time def make_project(project_n ...

  4. Python爬虫项目70例,附源码 70个Python爬虫练手实例

    今天博主给大家带来了一份大礼,Python爬虫70例!!!以及完整的项目源码!!! 本文下面所有的爬虫项目都有详细的配套教程以及源码,都已经打包好上传到百度云了,链接在文章结尾处! 扫码此处领取大家自 ...

  5. Verilog HDL|实验项目六例

    实验一 EDA 设计软件的使用 实验内容 实现1 位全加器 图 1 在顶层编辑窗中设计好全加器 程序代码 module MULT4B(RX,AX,BX);output [3:0] RX; input ...

  6. python练习项目八——下载所有XKCD 漫画

    项目:下载所有XKCD 漫画 背景 博客和其他经常更新的网站通常有一个首页,其中有最新的帖子,以及一个"前一篇"按钮,将你带到以前的帖子.然后那个帖子也有一个"前一篇&q ...

  7. 爱卓越java_以培养卓越工程师为目标的渐进式项目案例教学法研究——以java实验教学为例...

    以培养卓越工程师为目标的渐进式项目 案例教学法研究 - - 以java实验教学为例 郭小清,朱淑鑫,谢忠红,叶锡君 (南京农业大学 信息科学技术学院,江苏 南京 210095) 摘 要:为了响应国家 ...

  8. python开源项目贡献_通过为开源项目做贡献,我如何找到理想的工作

    python开源项目贡献 by Utsab Saha 由Utsab Saha 通过为开源项目做贡献,我如何找到理想的工作 (How I found my dream job by contributi ...

  9. 精选Python开源项目Top10!

    作者 | MyBridge 译者 | Linstancy 整理 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近 250 个 Python 开源项目进行了排名,并挑选出热度前 1 ...

最新文章

  1. mysql索引为啥要选择B+树 (上)
  2. mysql同一个表,两个数字取差值
  3. 阿里云企业服务器配置选择教程!
  4. 2018.09.15 vijos1053Easy sssp(最短路)
  5. 作者:李姣(1981-),女,博士,中国医学科学院医学信息研究所副研究员、硕士生导师。...
  6. 腾讯云linux vnc端口,用腾讯云手把手教你用VNC搭建Ubuntu可视化界面(一)
  7. 爱奇艺回应迷雾剧场停播:以完成后期的定档官宣时间为准
  8. 中国医科大学计算机应用基础本科在线作业,17秋中国医科大学《计算机应用基础(本科)》在线作业...
  9. ctfshow-WEB-web4
  10. ZooKeeper官方文档学习笔记03-程序员指南
  11. Javascript经典窍门
  12. 观众直呼“让她恰”,B站内容如何有效撬动ROI增长?
  13. VS编程,WPF中响应键盘事件、检测键盘键是否按下的一种方法
  14. 豆瓣高分JAVA书籍,值得收藏
  15. freeRTOS 时间管理
  16. WIN10 家庭版 安装DOCKER 遇到问题:THIS COMPUTER DOESN'T HAVE VT-X/AMD-V ENABLED
  17. Python第3章 流程控制
  18. MySQL复习笔记(三)
  19. python公里转海里_海里换算(海里换算公里)
  20. C++中switch字符串Cstring/string map中查找

热门文章

  1. [转]真核生物预测软件
  2. 计算机网络的常见面试题
  3. vue、Steps 步骤条、Steps 属性、vue Steps 所有步骤条样式、vue Steps 步骤条全部属性
  4. matlab:plot线型和颜色
  5. php自由脱式组件,脱式计算.26×3+451314×(603-596)3000-830×31738÷(45÷5)
  6. 求教如何实现VB.NET控件随着窗体的放大而放大
  7. 用 Python 加密文件
  8. 7、TM4单片机学习之串口功能
  9. python虚函数_虚函数和纯虚函数的区别
  10. 世界各国当日数据探索性分析