第三周——小结 Day6 7.17

《30天自制操作系统》 day6 小结 分割编译与中断处理1. 分割源文件分割文件的优劣: 优 劣 (1)按照处理内容进行分类,如果分的好的话,将来进行修改时,容易找到地方。 (5)源文件数量增加。 (2)如果Makefile写的好,只需要编译修改过的文件,就可以提高make的速度。 (6)分类分得不好的话,修改时不容易找到地方。 (3)单个源文件都不长,多个小文件比大文件好处理。 (4)看起来很酷。 阅读详情

今天周末,做了4个程序

1.分别使用for循环、while循环,打印出九九乘法表(循环知识)

for i in range(1,10):
    for j in range(1,10):
        print("%d * %d = %d"%(i,j,i*j),end=" ")
    print("")
a = 1
while a < 10:
    b = 1
    while b <= a:
        print("%d * %d = %d"%(b,a,a*b),end=" ")
        b += 1
    a += 1
    print("")

2.使用if语句,实现石头剪刀布的游戏效果(条件判断知识)

(1)普通版:

import random

print("*******欢迎来到猜拳游戏!*******")
print("***********游戏规则***********")
print("****剪刀-0****石头-1****布-2****")
print("**********开始PK吧!**********")

player = int(input("请输入你的数字:"))
computer = random.randint(0,2)
print("对方出的是:%d"%computer)
if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
    print("获胜!哈哈,你太厉害了!")
elif player == computer :
    print("平局,要不再来一局?")
else:
    print("输了,不要走,决战到天亮!")

(2)plus版(纠错+重复游戏)

import random

print("*******欢迎来到猜拳游戏!*******")
print("***********游戏规则***********")
print("****剪刀-0****石头-1****布-2****")
print("**********开始PK吧!**********")

while True:
    player =int(input("请输入你的数字:"))
    computer = random.randint(0, 2)
    if player >= 0 and player <= 2:
        print("对方出的是:%d" % computer)
        if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
            print("获胜!哈哈,你太厉害了!")
        elif player == computer :
            print("平局,要不再来一局?")
        else:
            print("输了,不要走,决战到天亮!")
    else:
        print("输入无效数字,请重新输入")
        continue
    p = input("输入Y继续游戏,其他键结束游戏:")
    if p == "Y":
        print("********************")
    else:
        print("*******游戏结束*******")
        break

(3)pro版:(用差做条件,纠错+重复游戏)

import random

print("*******欢迎来到猜拳游戏!*******")
print("***********游戏规则***********")
print("****剪刀-0****石头-1****布-2****")
print("**********开始PK吧!**********")

while True:
    player = int(input("请输入你的数字:"))
    computer = random.randint(0, 2)
    c = player - computer
    if c == -2 or c == 1:
        print("对方出的是:%d" % computer)
        print("获胜!哈哈,你太厉害了!")
    elif c == 0 :
        print("对方出的是:%d" % computer)
        print("平局,要不再来一局?")
    elif c == -1 or c ==2:
        print("对方出的是:%d" % computer)
        print("输了,不要走,决战到天亮!")
    else:
        print("输入无效数字,请重新输入")
        continue
    p = input("输入Y继续游戏,其他键结束游戏:")
    if p == "Y":
        print("********************")
    else:
        print("*******游戏结束*******")
        break

(4)创新版:(用列表做条件)

import random

while True:
    player = input("剪刀为0,石头为1,布为2,请输入0,1,2 出拳:")
    a = ["0","1","2"]
    win = [["1","0"],["2","1"],["0","2"]]
    computer = random.choice(a)
    if player in a :
        print("对方出的是:%s" % computer)
        if player == computer:
            print("平局,要不再来一局?")
        elif [player,computer] in win :
            print("获胜!哈哈哈,你太厉害了!")
        else:
            print("输了,不要走,决战到天亮!")
    else:
        print("输入无效数字,请重新输入")
        continue
    p = input("输入Y继续游戏,其他键结束游戏:")
    if p == "Y":
        print("********************")
    else:
        print("*******游戏结束*******")
        break

 

3.(列表知识)

现有商品列表如下:

(1)products=[["iphone",6888],["MacPro",14800],["小米6",2499],["coffee",31],["Book",60],["Nike",699]],需打印以下格式:

------------   商品列表   ------------

0               iphone              6888

1               MacPro            14800

2               小米6                2499

3               coffee               31

4               Book                60

5               Nike                 699

(2)根据上面的products列表写一个循环,不断询问用户想要买什么,用户选择一个商品编号,就把对应的商品添加到购物车,最终用户输入q退出时,打印购买的商品列表。

products=[["iphone",6888],["MacPro",14800],["小米6",2499],["coffee",31],["Book",60],["Nike",699]]

print("------商品列表------")

for i , item in enumerate(products):
    print(str(i)+"\t"+item[0]+"\t"+str(item[1]))

shopping_car = [0 for i in range(6)]
count = 0
sum = 0

while True:
    id = input("请输入您要购买的商品编号:")
    if id.isdigit():
        id = int(id)
        if id < 0 or id >= len(products):
            print("商品编码超出范围,请重新输入")
            continue
        else:
            shopping_car[id] += 1
            count += 1
    elif id.isalpha() and id == 'q':
        if count == 0:
            print("您没有购买任何商品,欢迎下次光临!")
        else:
            print("------您已购买------")
            i = 0
            for num in shopping_car:
                if num != 0:
                    print(products[i][0]+"\t"+str(products[i][1])+"\t"+str(num)+"个"+"\t"+str(products[i][1]*num)+"元")
                    sum += products[i][1]*num
                i += 1
            print("共计:"+ str(sum) + "元")
        exit()
    else:
        print("输入格式有误,请输入数字")

4.(文件知识)

(1)应用文件操作的相关知识,通过python新建一个文件poem.txt,选择一首古诗写入文件中

(2)另外写一个将内容复制到copy.txt中,并在控制台输出“复制完毕”(可以用函数,也可以不用)

极简版:

f = open ("poem.txt","w")
f.write('''夏日绝句
                  李清照
         生当作人杰,
         死亦为鬼雄。
         至今思项羽,
         不肯过江东。
''')
f.close()

with open("poem.txt",'r') as f1:
    with open("copy.txt",'w') as f2:
        f2.write(f1.read())
        print("复制完毕")

函数版:

def write_file(file_name,content):
    with open(file_name,'w',encoding='utf-8') as file:
        file.write(content)

def copy_file(source_file,target_file):
    with open(source_file,'r',encoding='utf-8') as sourcefile:
        with open(target_file,'w',encoding='utf-8') as targetfile:
            targetfile.write(sourcefile.read())

        print("复制完毕")

content = '''夏日绝句
                  李清照
            生当作人杰,
            死亦为鬼雄。
            至今思项羽,
            不肯过江东。
'''

write_file('poem.txt',content)
copy_file('poem.txt','copy.txt')

小结:这周一边学习python基本语法,一遍跟着做项目,目前可以做较复杂的程序,下周开始学习爬虫,顺便补点前端的知识

《30天自制操作系统》 day5 小结 结构体、文字显示与GDT/IDT初始化 阅读详情

相关推荐

Maya vray 3S皮肤材质球设置与材质节点连接

Maya vray 3S皮肤材质球设置与材质节点连接

WETQETF的博客 2697

纪中DAY6做题小结

纪中DAY6做题小结T1:粉刷匠T2:迷路T3:游戏T4:windy数 T1:粉刷匠 Description windy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次,他最多能正确粉刷多少格子? 一个格子如果未被粉刷或者被...

ha_ing的博客 325

音频格式之AAC:(2)AAC封装格式ADIF,ADTS,LATM,extradata及AAC ES存储格式

本文主要1-3部分介绍AAC封装格式ADIF,ADTS和LATM,同时因为从mp4等封装容器有extradata模式,故也第4部分介绍extradata模式。最后第5部分介绍AAC压缩数据存储方式。

littlezls的博客 4937

纪中DAY7做题小结

纪中DAY7做题小结T1:洪水T2:邦德IT3:邦德IT4:自行车比赛 T1:洪水 Description 一天,一个画家在森林里写生,突然爆发了山洪,他需要尽快返回住所中,那里是安全的。 森林的地图由R行C列组成,空白区域用点“.”表示,洪水的区域用“*”表示,而岩石用“X”表示,另画家的住所用“D”表示,画家用“S”表示。 有以下几点需要说明: 1、 每一分钟画家能向四个方向移动一格(上、下...

ha_ing的博客 331

yolov5深度剖析+源码debug级讲解系列(一) yolov5的架构和源码debug准备

前言 前段时间分析了yolov3的源码,这次想带着小伙伴一起把yolov5完全掌握。博主还是保持着一贯的风格,依旧采用debug级别的源码剖析。目的就是让大家可以通过一个系列的文章就把yolov5的架构、设计理念和每一行源码都弄懂。只要小伙伴可以花时间把这个系列读完,就会对yolov5的理解有所提升。 去年参加了kaggle的小麦检测比赛,yolov5在比赛的中段开始呈现霸榜趋势,超越了efficientdet。虽然最后yolov5因为权限等某些问题被kaggle官方禁用了,但是仍然体现出了其强大的能力。值

人唯优的博客 4万+

GenomeSurvyIndex设计--随笔017

摘要: GenomeSurvyIndex是一款自动化多倍体基因组调查工具,整合FastK、Smudgeplot和GenomeScope2.0三大核心组件。该工具通过k-mer频谱特征自动识别基因组倍性类型,包括二倍体(1:2:4)和同源四倍体(1:2:3:4),并采用3a1b>2a2b算法判定同源/异源多倍体。工具提供完整的conda环境配置方案,封装为Python脚本实现全流程自动化分析,包含k-mer计数、倍性判定、基因组特征计算等功能,最终输出标准化报告和可视化图表。该方案可直接部署使用,适用于

weixin_44874487的博客 475

纪中DAY12做题小结

纪中DAY12做题小结T1:能量获取T2:封印一击T3:归途与征程 T1:能量获取 Description “封印大典启动,请出Nescafe魂珠!”随着圣主applepi一声令下,圣剑护法rainbow和魔杖护法freda将Nescafe魂珠放置于封印台上。封印台是一个树形的结构,魂珠放置的位置就是根节点(编号为0)。还有n个其他节点(编号1-n)上放置着封印石,编号为i的封印石需要从魂珠上获...

ha_ing的博客 1368

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1593

纪中DAY13做题小结

纪中DAY13做题小结T1:旅游(travel)T2:做梦(dream)T3:数数(count) T1:旅游(travel) Description ztxz16如愿成为码农之后,整天的生活除了写程序还是写程序,十分苦逼。终于有一天,他意识到自己的生活太过平淡,于是决定外出旅游丰富阅历。 ztxz16生活的城市有NM个景点,可以描述成一个NM的矩形,每个景点有一个坐标(x, y) (1 <...

ha_ing的博客 383

GAN管CGH40010F设计宽带Doherty功放:如何用ADS搞定输入匹配、合路网络与功分器?

本文详细介绍了基于CGH40010F GaN晶体管的宽带Doherty功放设计流程,重点讲解在ADS平台中实现输入匹配网络、合路网络与功分器的关键技术。通过寄生参数补偿、渐变微带线设计和复合补偿结构等方法,解决了宽带化设计中的核心挑战,最终实现1.7-2.6GHz频段内72%的峰值效率和52%的回退效率。

weixin_42614269的博客 473

西门子S7通信协议TSAP配置全攻略:从默认值到自定义修改(附各型号对照表)

本文深入解析西门子S7通信协议中TSAP配置的核心原理与实战方法。针对S7-200/300/400/1200/1500等主流PLC型号,提供了默认TSAP对照表,并详细阐述了如何根据机架号和插槽号计算或自定义Remote TSAP。文章结合常见连接失败案例,给出了系统化的排错流程,旨在帮助工程师快速打通S7通信链路,提升工业自动化现场调试效率。

weixin_29163797的博客 283

day 17 小结

目录 包 time模块 datetime模块 random模块 hashlib模块和hmac模块 typing模块 requests模块 re模块 包 1.包 == 模块, 包拿来导入用的 2....

aichou7949的博客 166

英飞凌 AURIX TC3XX 系列单片机的 NVM-Flash 介绍

简单介绍英飞凌 AURIX TC3XX 系列多核单片机的 Flash,便于快速上手使用

大橙子的博客 6640

Java day6 小结

Java day6 小结 查漏补缺: 1.while 与 for 的区别: 1>for循环,明确循环的次数(如果知道范围,直接可以使用for循环) while循环,在开发中不明确循环的次数,使用while循环(使用仅次于for循环) 2>从内存角度考虑: for循环一旦结束,控制的这个变量会从内存中及时释放掉; while循环还可以访问控制的变量值,它不会立即被是释放,等待GC空闲时...

weixin_46085370的博客 125

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

day9 17今日小结

qq_42722278的博客 95

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

day17 学习小结

一、包 1. 包的介绍 本质就是模块,实际上就是一个含有__init__.py文件的文件夹 导包就是导入__init__.py文件 包一定是被当作模块文件导入,模块文件的搜索路径以执行文件的路径为准 2. 绝对导入和相对导入 只能在包中使用 - 绝对导入 from 包名.模块名 import 方法名 - 相对导入 .代表当前被导入文件所在的文件夹 ..代表当前被导入文件所在的文件夹...

aojiao1178的博客 271

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

day17 17今日小结

qq_42722278的博客 122

day7小结

1、CSS3是CSS2.1的一个升级版,它是对CSS的一个扩展。 2、CSS3的主要新特性: 1)选择器 2)阴影 3)形状转换(2D<->3D) 4)变形 5)动画(过渡动画、帧动画) 6)边框 7)多重背景 8)反射 9)文字 10)颜色(rgba/hsl/hsla) 11)滤镜(filter) 12)弹性布局 13)多列布局 14)盒模型 15)Web字体 16)媒体查询 3、CSS3不是所有浏览器或同一浏览器的不同版本都支持,所以需要兼容处理,通常的做法就是加厂商前缀。 1)主流浏览器内

KanaseKanon的博客 978

Day24,数组下标越界及小结

qq_50034199的博客 159

Java day7 小结

Java day7 小结 查漏补缺: 数组的遍历: class Demo{ pubulic stataic void main(String[]args){ System.out.print("["); for(int x=0;x<arr.length;x++){ if(x==arr.length-1){ System.out.print(arr[x]+"]"); }else{ System...

weixin_46085370的博客 130

day6小结

1、HTML5由W3C和WHAT组织机构共同研发出来的,于2014年正式发布。 2、HTML5成为了新一代网页开发标准。 3、HTML5新特性(面试) 1)增加了audio和video音频播放,抛弃了Flash 2)新增canvas画布(绘画,制作动画(如小游戏开发等)) 3)地理定位 4)增加了离线缓存 5)硬件加速 6)Web Socket(全双工通信) 7)增加了本地存储 8)新增了一些语义化标签 4、网页布局标签 header:页首 nav:导航栏 asider:侧边栏 main:主体 sectio

KanaseKanon的博客 228

day12 17每日小结

qq_42722278的博客 168

DAY6 小结

小结

weixin_46133588的博客 467

Java基础—Day17—集合2

Java基础—Day17 1.ArrayList源码分析 1.1 ArrayList类本身

weixin_48228288的博客 131

day6 16今日小结

qq_42722278的博客 79

纪中DAY2做题小结

纪中DAY2做题小结T1:佳肴T2:取数游戏T3:删除T4区间功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 T1:佳...

ha_ing的博客 267
上一篇: 第三周——项目实践(已完) Day5 7.15
下一篇: 第四周——爬虫入门 Day1 7.18
FancySYZ
博客等级 码龄4年 2粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值