当前位置: 首页 > news >正文

学习大数据DAY30 python基础语法3

目录

上机练习 5

File(文件) 读写

文本文件写

文本文件读

csv 文件写

csv 文件读

异常

自定义异常

上机练习 6


上机练习 5

上机练习5的作业我昨天就写完了,但是因为它是今天的作业,我就今天发咯。

# atm 机模拟器:使用 main 入口,结合函数与列表等实现
# 核心数据如下
# data=[{'id':'1001','passwd':'123456','bat':'1000'},
# {'id':'1002','passwd':'123456','bat':'2000'},
# {'id':'1003','passwd':'123456','bat':'3000'},
# {'id':'1004','passwd':'123456','bat':'4000'}]
# ---------- 欢迎使用 ATM 机 ----------
# 请输入账号:1002
# 请输入密码:123
# 账号或密码错误
# ---------- 欢迎使用 ATM 机 ----------
# 请输入账号:1002
# 请输入密码:123456
# 登录成功,请进行下列操作:
# ----------操作页面----------
# 1.存款
# 2.取款
# 3.查询余额
# 4.转账
# 5.退出
# ----------------------------
# 请输入操作选项:3
# 您当前的可用余额为:2000
# ----------操作页面----------
# 1.存款
# 2.取款
# 3.查询余额
# 4.转账
# 5.退出
# ----------------------------
# 请输入操作选项:1
# 请输入存款金额:2000
# 您已成功存款 2000,您当前的余额为:4000
# ----------操作页面----------
# 1.存款
# 2.取款# 3.查询余额
# 4.转账
# 5.退出
# ----------------------------
# 请输入操作选项:2
# 请输入取款金额:5000
# 您的余额不足!
# ----------操作页面----------
# 1.存款
# 2.取款
# 3.查询余额
# 4.转账
# 5.退出
# ----------------------------
# 请输入操作选项:2
# 请输入取款金额:200
# 您已成功取款 200,您当前余额为:3800
# ----------操作页面----------
# 1.存款
# 2.取款
# 3.查询余额
# 4.转账
# 5.退出
# ----------------------------
# 请输入操作选项:4
# 请输入收款账号:1003
# 请输入转账金额:200
# 您已成功转账 200,您当前余额为:3600
# 注:判断收款账号不能是自己,判断账号是否存在,判断自己余额是否够转账
# ----------操作页面----------
# 1.存款
# 2.取款
# 3.查询余额
# 4.转账
# 5.退出
# ----------------------------
# 请输入操作选项:5
# 请问是否退出? y/n:y
# 已成功退出,请取回您的银行卡
# ----------------------------
# 请输入操作选项:6
# 输入错误data=[{'id':'1001','passwd':'123456','bat':'1000'},
{'id':'1002','passwd':'123456','bat':'2000'},
{'id':'1003','passwd':'123456','bat':'3000'},
{'id':'1004','passwd':'123456','bat':'4000'}]
# 登录
def login():
errorcount=0
while 1:
print("---------- 欢迎使用 ATM 机 ----------")
id=input("请输入账号:")
passwd=input("请输入密码:")
for i in data:
if id==i['id'] and passwd==i['passwd']:
print("登录成功,请进行下列操作:")
return id
errorcount+=1
if 7-errorcount<=0:
print("密码错误次数过多,请稍后再试")
return None
else :
print(f"账号或密码错误,你还有{7-errorcount}次机会")
pass
# 取钱
def DrawMoney(id):
money=int(input("请输入取款金额:"))
if money<=0:
print("取款金额不正确!")
else:
for i in data:
if id==i['id']:
if int(i['bat'])<money:
print("您的余额不足!")
break
else:
i['bat']=str(int(i['bat'])-money)
print(f"您已成功取款{money},您当前余额为:
{i['bat']}")
break
pass
# 存钱
def SaveMoney(id):
money=int(input("请输入存款金额:"))
if money<=0:print("存款金额不正确!")
else:
for i in data:
if id==i['id']:
i['bat']=str(int(i['bat'])+money)
print(f"您已成功存款{money},您当前的余额为:
{i['bat']}")
break
pass
# 查询余额
def CheckMoney(id):
for i in data:
if id==i['id']:
print(f"您当前的可用余额为:{i['bat']}")
break
pass
#转账
def GiveMoney(id):
give_id=input("请输入收款账号:")
if give_id==id:
print("收款账号不能是自己!")
else:
for i in data:
if give_id==i['id']:
money=int(input("请输入转账金额:"))
if money<=0:
print("转账金额不正确!")
return
else:
for j in data:
if id==j['id']:
if int(j['bat'])<money:
print("您的余额不足!")
return
else:
i['bat']=str(int(i['bat'])+money
)
j['bat']=str(int(j['bat'])-money
)
print(f"您已成功转账{money},您当前
余额为:{j['bat']}")
return
print("账号不存在!")pass
#操作界面
def Operation(id):
if id==None:
return
while 1:
op=int(input("""----------操作页面----------
1.存款
2.取款
3.查询余额
4.转账
5.退出
----------------------------
请输入操作选项:"""))
if op==1:
SaveMoney(id)
elif op==2:
DrawMoney(id)
elif op==3:
CheckMoney(id)
elif op==4:
GiveMoney(id)
elif op==5:
QuiteATM=input("请问是否退出? y/n:")
if QuiteATM=="y":
print("已成功退出,请取回您的银行卡")
return
else:
continue
else:
print("输入错误")
pass
if __name__=="__main__":
id=login()
Operation(id)

File(文件) 读写

持久化存储数据
例如: atm 取款机程序重新执行数据没有保存

文本文件写

write() 方法将任何字符串写入打开的文件,换行符 (‘\n‘)
mode="w" 覆盖写
mode="a" 追加写
文本文件可以是 txt 或者 csv
with open("D:\\wtest.txt",mode='w',encoding='UTF-8') as f :
f.write("ccccccccccccccc\n")
f.write("ccccccccccccccc\n")
f.close()

文本文件读

# 全部读出来
with open("/root/python/test.txt",mode='r',encoding='UTF-8') as
f:
resutl = f.read()
print(resutl)
f.close()
#readlines 方法则是读取所有行,一次性全部读出,
# 按行作为分隔符条件,返回所有行组成的列表(每行内容是一个元素)
with open("/root/python/test.txt",mode='r',encoding='UTF-8') as
f:
data = f.readlines()
for i in data : print(i,end="")
f.close()

csv 文件写

import csv
data=[{'id':'1001','passwd':'123456','bat':'1000'},
{'id':'1002','passwd':'123456','bat':'2000'},
{'id':'1003','passwd':'123456','bat':'3000'},
{'id':'1004','passwd':'123456','bat':'4000'}]
with open("/root/python/user.csv",mode="w", encoding="UTF-8") as
f:
result=csv.DictWriter(f,fieldnames=["id","passwd","bat"])
result.writeheader()
result.writerows(data)
f.close()

csv 文件读

csv 文件以字典的形式存储在列表里
id,passwd,bat
1001,123456,1000
1002,123456,2000
1003,123456,3000
1004,123456,4000
with open("/root/python/user.csv",mode='r',encoding='UTF-8') as
f:
result = csv.DictReader(f)
data.clear()
for i in result: data.append(i)
f.close()

异常

程序在运行期间,当 python 检测到一个错误时,解释器就无法继续执行(程序
崩溃)
了,反而出现了一些错误提示,这就是所谓的异常
try:
x = int(input(" 请输入一个数字 : "))
z=100/x
print("ok")
except ValueError:
print(" 您输入的不是数字 , 请再次尝试输入! ")
except ZeroDivisionError:
print(" 除数不能为零 ")
except Exception as e:
print(" 未知错误 ")
print(e)
finally:
print(" 无论如何都会执行 ")

自定义异常

使用 raise 语句抛出一个指定的异常。
try:
x = int(input(" 请输入一个小于 5 的数字 : "))
if x > 5:
raise Exception("x 不能大于 5 ") # print("x 不能大于 5")
except Exception as e:
print(e)

上机练习 6

# 1.修改 atm 取款机数据为持久化永久存储,csv 读取实现(分别使用函数实
现读和取),使
# 用异常处理 atm 取款机读取 csv 时判断文件是否存在,如果文件不存在提示"
没有文件使用
# 原数据"
# 2.使用异常在 atm 取款机的项目中存款函数中:
# 如果输入的存款金额不是整数则提示:请输入整数;
# 如果输入的存款金额不是 100 的倍数或者是负数则提示:请输入 100 的倍数
的正整数
import csv
data=[]
# 存入 csv 文件
def write_csv():
with open('/root/atmdata.csv','w',encoding='UTF-8') as
sdata:
savedata=csv.DictWriter(sdata,fieldnames=['id','passwd',
'bat'])
savedata.writeheader()
savedata.writerows(data)
sdata.close()
# 读取 csv 文件
def read_csv():
try:
with open('/root/atmdata.csv','r',encoding='UTF-8') as
fdata:
datadict=csv.DictReader(fdata)
data.clear()
for i in datadict:
data.append(i)
fdata.close()
except FileNotFoundError:
print("没有文件使用原数据")# 注销账号
def DropMyCounter(id):
DropConfirm=input("确认一下该账户的密码:")
for i in data:
if id==i['id'] and DropConfirm==i['passwd']:
data.remove(i)
print("注销成功!")
write_csv()
return
print("密码不正确!")
pass
# 注册账号
def Register():
try:
id=input("请输入您的账号:")
passwd=input("请输入您的密码:")
if id in [i['id'] for i in data]:
raise Exception("账号已存在!")
if len(id)<4 or len(passwd)<6:
raise Exception("账号 id 不能小于 4 位,密码不能小于 6 位!
")
data.append({'id':id,'passwd':passwd,'bat':'0'})
print("注册成功!")
write_csv()
except Exception as e:
print("注册失败!",e)
pass
# 登录界面
def login():
errorcount=0
while 1:
print("---------- 欢迎使用 ATM 机 ----------")
RegisterOrLogin=input("请选择登录或注册(R 注册,L 登录,Q 退
出):")
if RegisterOrLogin=="R":
Register()
continue
elif RegisterOrLogin=="L":
id=input("请输入账号:")
passwd=input("请输入密码:")
for i in data:
if id==i['id'] and passwd==i['passwd']:
print("登录成功,请进行下列操作:")return id
errorcount+=1
if 7-errorcount<=0:
print("密码错误次数过多,请稍后再试")
return None
else :
print(f"账号或密码错误,你还有{7-errorcount}次机会
")
elif RegisterOrLogin=="Q":
return None
else:
print("输入错误,请重新输入")
pass
# 取钱
def DrawMoney(id):
try:
money=int(input("请输入取款金额:"))
if money<=0:
print("取款金额不正确!")
else:
for i in data:
if id==i['id']:
if int(i['bat'])<money:
print("您的余额不足!")
break
else:
i['bat']=str(int(i['bat'])-money)
print(f"您已成功取款{money},您当前余额为:
{i['bat']}")
write_csv()
break
except ValueError:
print("请输入整数!")
except Exception as e:
print("其它错误,请联系管理员!",e)
pass
# 存钱
def SaveMoney(id):
try:
money=int(input("请输入存款金额:"))
if money%100!=0 or money<=0:
print("存款金额不正确!请输入 100 的倍数的正整数!")else:
for i in data:
if id==i['id']:
i['bat']=str(int(i['bat'])+money)
print(f"您已成功存款{money},您当前的余额为:
{i['bat']}")
write_csv()
break
except ValueError:
print("请输入整数!")
except Exception as e:
print("其它错误,请联系管理员!",e)
pass
# 查询余额
def CheckMoney(id):
for i in data:
if id==i['id']:
print(f"您当前的可用余额为:{i['bat']}")
break
pass
#转账
def GiveMoney(id):
give_id=input("请输入收款账号:")
if give_id==id:
print("收款账号不能是自己!")
else:
for i in data:
if give_id==i['id']:
try:
money=int(input("请输入转账金额:"))
if money<=0:
print("转账金额不正确!")
return
else:
for j in data:
if id==j['id']:
if int(j['bat'])<money:
print("您的余额不足!")
return
else:
i['bat']=str(int(i['bat'])+m
oney)j['bat']=str(int(j['bat'])-m
oney)
print(f"您已成功转账{money},
您当前余额为:{j['bat']}")
write_csv()
return
except ValueError:
print("请输入整数!")
return
except Exception as e:
print("其它错误,请联系管理员!",e)
return
print("账号不存在!")
pass
#操作界面
def Operation(id):
if id==None:
return
while 1:
op=input("""----------操作页面----------
1.存款
2.取款
3.查询余额
4.转账
5.退出
6.注销账号
----------------------------
请输入操作选项:""")
if op=='1':
SaveMoney(id)
elif op=='2':
DrawMoney(id)
elif op=='3':
CheckMoney(id)
elif op=='4':
GiveMoney(id)
elif op=='5':
QuiteATM=input("请问是否退出? y/n:")
if QuiteATM=="y":
print("已成功退出,请取回您的银行卡")
return
else:
continueelif op=='6':
DropMyCounter(id)
return
else:
print("输入错误")
pass
if __name__=="__main__":
read_csv()
id=login()
Operation(id)
# 3.将内容“诚挚邀请您来参加本次宴会”追加到“邀请函.txt”文件末尾。
# 4.读取邀请函的内容。
with open('/root/python/邀请函.txt', 'a', encoding='UTF-8') as f:
f.write("诚挚邀请您来参加本次宴会\n")
f.close()
with open('/root/python/邀请函.txt', 'r', encoding='UTF-8') as f:
data=f.read()
print(data)
f.close()

今天写的代码比较多,但是整理一下思路还是不难写的。

相关文章:

学习大数据DAY30 python基础语法3

目录 上机练习 5 File(文件) 读写 文本文件写 文本文件读 csv 文件写 csv 文件读 异常 自定义异常 上机练习 6 上机练习 5 上机练习5的作业我昨天就写完了&#xff0c;但是因为它是今天的作业&#xff0c;我就今天发咯。 # atm 机模拟器&#xff1a;使用 main 入口&…...

一文弄清Java的四大引用及其两大传递

开场白 Hello大家好呀&#xff0c;我是CodeCodeBond✊最近在复习很多很多的基础知识&#xff0c;有了很多新的感悟~ 话不多说&#xff0c;直接发车✈ 四大引用 问题切入点 在学习 Thread线程利用ThreadLocalMap实现线程的本地内存&#xff08;变量副本&#xff09;的时候&…...

arduino程序-MC猜数字5、6(基础知识)

arduino程序-MC猜数字5、6&#xff08;基础知识&#xff09; 1-23 MC猜数字-5 自定义函数自定义函数自定义清理显示内容函数displayClear&#xff08;&#xff09;带参数函数displayNumber带参数、返回值的函数 1-24 MC猜数字-6 完成制作显示0~9数字函数改造产生随机数字函数改…...

【笔记】如何在ps里调整贴图

如图我想要在ps里把角上半部分画成绿色 1.打开ps&#xff0c;拖进贴图 2.把所有图层全选复制&#xff0c;除了实体、选择、背景和uv图层 3.把这些图层合并 4.自己手动选上半部分角 按shift加选 alt减选 5. 这里可以调整饱和度、色相、明度 6. 选好之后用羽化之后边缘会…...

【C++11】深度解析--异步操作(什么是异步?异步有那些操作?异步操作有什么用呢?)

目录 一、前言 二、什么是异步操作呢&#xff1f; &#x1f525;异步的概念&#x1f525; &#x1f525;异步的生活案例说明&#x1f525; 三、异步有那些操作呢&#xff1f; &#x1f525;std::future&#x1f525; &#x1f4a2;std::future 的概念&#x1f4a2; &a…...

PHP苹果 V X iPhone微商i o s多分开V X语音转发密友朋友圈一键跟圈软件

苹果VX神器&#xff01;iPhone微商必备&#xff1a;ios多开、VX语音转发、密友朋友圈一键跟圈软件大揭秘&#xff01; 一、iOS多开新境界&#xff0c;工作生活两不误&#xff01; 你是不是也烦恼过&#xff0c;想要在工作号和生活号之间自由切换&#xff0c;却因为iPhone的限制…...

LDR6020 iPad皮套一体式键盘充电方案解析

在移动办公与学习的浪潮中&#xff0c;iPad凭借其强大的性能与便携性&#xff0c;成为了越来越多人的首选设备。然而&#xff0c;随着工作与学习任务的日益复杂&#xff0c;单一的触控操作已难以满足高效、精准的需求。因此&#xff0c;搭配一款优秀的键盘成为了提升iPad使用体…...

一款功能强大且免费的跨平台图片批量处理工具

XnConvert是一款功能强大且免费的跨平台图片批量处理工具&#xff0c;广泛应用于个人用户、教育机构和非营利组织。它支持超过500种图片格式&#xff0c;包括常见的JPEG、PNG、TIFF、GIF、WebP、PSD、JPEG2000等&#xff0c;并能够导出为大约70种不同的文件格式。 该软件的主要…...

用Python打造精彩动画与视频,4.2 特效和滤镜的使用

第四章&#xff1a;深入MoviePy 4.2 特效和滤镜的使用 在视频制作和编辑过程中&#xff0c;特效和滤镜是不可或缺的元素。它们不仅能增强视觉效果&#xff0c;还能赋予视频独特的风格和情感。MoviePy 作为一个功能强大的视频编辑库&#xff0c;提供了多种内置的特效和滤镜&…...

在 iOS 系统中,如何设置才能更好地保护个人隐私?

在iOS系统中&#xff0c;有一些设置和功能可以帮助您更好地保护个人隐私。以下是一些建议&#xff1a; 使用设备锁&#xff1a;设置一个强密码、Touch ID或Face ID来锁定您的设备。这可以防止其他人访问您的设备和个人信息。 更新软件&#xff1a;及时更新您的iOS系统和应用程…...

Charles抓包工具系列文章(七)-- Rewrite工具的应用示例

一、背景 客户端通过域名访问后端服务,在api网关层,会判断path的前缀,默认/api开头的请求都转发至后端服务A。 当前缀是/assist/api开头,请求将转发至后端服务B(部署在192.168.80.226,便于测试对比) 在不改动kong网关配置的情况下,现需要把后者的请求转发至192.168.…...

国内SSL证书颁发机构哪家服务更优质?

SSL证书作为保障网站数据传输安全的关键工具&#xff0c;其重要性不言而喻。选择一个可靠的SSL证书代理商&#xff0c;不仅能够提供多样化的证书类型&#xff0c;而且能在众多品牌中进行比较&#xff0c;选择最适合自己的、性价比更高的产品。此外&#xff0c;优质的代理商还能…...

鸿蒙系统开发【设备安全服务-应用设备状态检测】安全

设备安全服务-应用设备状态检测 介绍 本示例向您介绍如何在应用中获取DeviceToken用于对应用的设备状态进行检测。 需要使用设备安全服务接口 kit.DeviceSecurityKit。 效果预览 Sample工程的配置与使用 在DevEco中配置Sample工程的步骤如下 [创建项目]及[应用]。打开Sam…...

19个运维工程师面试集锦

第一部分&#xff1a;Linux基础 题目1&#xff1a; 有一百个图片文件&#xff0c;它们的地址都是 http://down.xiaomi.com/img/1.png http://down.xiaomi.com/img/2.png … 一直到 http://down.xiaomi.com/img/100.png 如何批量下载这100个图片文件&#xff0c;并找出其中大…...

一芯解锁「看家」新体验,航芯高性价比猫眼智能锁方案,让安全看得见!

随着智能门锁市场规模逐年递增&#xff0c;行业“内卷”也持续激烈。伴随着一路加码的功能卖点&#xff0c;智能门锁制造商正面临着产品功能芯片增多和成本优化的双重挑战。消费者不仅追求易用性、智能化和美观性&#xff0c;更期待产品具有良好的性价比。 而在智能门锁的众多…...

IPv4 vs IPv6:了解这两大协议的关键差异

我发现&#xff0c;很多找代理IP的朋友在后台问我的问题都很相似&#xff01;都被配置IP的最后一步&#xff1a;选择IPv4还是IPv6&#xff1f;给难住了。昨晚我一晚没睡&#xff0c;终于整理出对IPv4和IPv6的对比总结&#xff0c;从概念阐述到特点对比&#xff0c;再解答IPv6总…...

C#知识|XML文件操作

哈喽,你好啊,我是雷工! 之前有朋友在群里聊XML文件操作的问题,今天正好学习相关内容, 以下为学习笔记。 01 XML介绍 ①:XML是eXtensible Markup Language的缩写,即扩展标记语言。 ②:XML是一种可以用来创建自定义的标记语言,由W3C(万维网协会)创建,用来克服HTML的局…...

TCP 和 UDP 之间的区别?

从 连接&#xff0c;可靠性&#xff0c;传输方式等方面&#xff1a; TCP 是面向连接的协议&#xff0c;在发送数据的时候需要先通过 TCP 的三次握手&#xff0c;而 UDP 是无连接的协议&#xff0c;可以直接传输数据TCP 通过超时重传&#xff0c;流量控制和拥塞控制等方法保障了…...

共用体、枚举类型、typedef定义,位运算

共用体 union 共用体名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; ... }; 共用体所有成员变量&#xff0c;所占空间重叠&#xff0c;占共同的空间。 枚举 将变量的值一一列举出来。 enum 枚举类型名…...

【运维】Linux如何批量解压文件夹下的很多个`.tar.gz`文件

要在Linux中批量解压这些.tar.gz文件&#xff0c;你可以使用tar命令配合find或者bash的通配符功能。这里是一个简单的步骤来解压所有这些.tar.gz文件&#xff1a; 方法 1: 使用 find 命令 find . -type f -name "*.tar.gz" -exec tar -xzvf {} \;这个命令的意思是从…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...