wangchoujuan 发表于 2024-8-21 20:48:26

新手小白学习笔记第四弹

自助取款机
主界面:
您好:XXX,欢迎来到银行,请选择您的操作:
查询余额输入1
存款输入2
取款输入3
退出输入4
请输入您的选择:

查询余额效果
---------------查询余额------------------
您好,您的余额剩余1000元
存,取款效果
--------------存款-----------
您好,你存款的数额为:
余额为:
---------------取款--------------
您好,你取款:
您的余额为:

要求:
程序启动后要求输入客户姓名
查询余额、存款、取款后都会返回主菜单
存款、取款后都应显示一下当前余额
客户选择退出或输入错误,程序退出否则程序一直运行
程序:
#定义全局函数
money=5000
name=None
#要求客户输入姓名
name=input("请输入您的姓名:")
#定义查询函数
def query(show_head):
    if show_head: #通过布尔类型的参数来控制打印出来的范围,输入实际参数为False即只打印第二个print语句
      print("__________查询余额_______________")
    print(f"{name},您好,您的余额剩余{money}元")

#定义存款函数
def saving(num):
    global money #声明money为全局变量
    money+=num
    print("__________存款_______________")
    print(f"{name},您好,您存款{num}元成功")
    #调用query函数查询余额
    query(False)

#定义取款函数
def get_money(num):
    global money
    money-=num
    print("__________取款_______________")
    print(f"{name},您好,您取款款{num}元成功")
    #调用query函数查询余额
    query(False)
#定义主菜单函数
def main():
   print("__________主菜单_______________")
   print(f"{name},您好,欢迎使用,请选择您所需要的服务:")
   print("查询余额\t\t[输入1]")
   print("存款\t\t[输入2]")
   print("取款\t\t[输入3]")
   print("退出\t\t[输入4]")
   return input("请输入您的选择")
#设置无限循环确保程序不退出
while True:
    keyboard_input=main() #通过变量接收main()函数的返回值
    if keyboard_input=="1":
      query(True)
      continue   #继续下次循环返回主菜单重新选择服务
    elif keyboard_input=="2":
      num=int(input("您的存款金额为:"))
      saving(num)
      continue
    elif keyboard_input=="3":
      num=int(input("您的取款金额为:"))
      get_money(num)
      continue
    else:
         print("程序退出")
         break    #退出循环

运行结果
请输入您的姓名:XXX
__________主菜单_______________
XXX,您好,欢迎使用,请选择您所需要的服务:
查询余额                [输入1]
存款                [输入2]
取款                [输入3]
退出                [输入4]
请输入您的选择1
__________查询余额_______________
XXX,您好,您的余额剩余5000元
__________主菜单_______________
XXX,您好,欢迎使用,请选择您所需要的服务:
查询余额                [输入1]
存款                [输入2]
取款                [输入3]
退出                [输入4]
请输入您的选择2
您的存款金额为:1000
__________存款_______________
XXX,您好,您存款1000元成功
XXX,您好,您的余额剩余6000元
__________主菜单_______________
XXX,您好,欢迎使用,请选择您所需要的服务:
查询余额                [输入1]
存款                [输入2]
取款                [输入3]
退出                [输入4]
请输入您的选择3
您的取款金额为:500
__________取款_______________
XXX,您好,您取款款500元成功
XXX,您好,您的余额剩余5500元
__________主菜单_______________
XXX,您好,欢迎使用,请选择您所需要的服务:
查询余额                [输入1]
存款                [输入2]
取款                [输入3]
退出                [输入4]
请输入您的选择4
程序退出

16、列表
数据容器
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每个元素可以是任意类型的数据如字符串、数字、布尔等

列表list
元组tuple
字符串str
集合set
字典dict

#列表的定义格式
[元素1,元素2,元素3.......]
变量名称=[元素1,元素2,元素3.......]

#空列表的定义
变量名称=[]
变量名称=list[]

#列表可一次存储多个数据,且可以作为不同的数据类型,支持嵌套
[‘it’,666,True]
[,]

#通过下标索引取出对应位置的数据
my_list=[‘it’,666,True]

my_list
666

my_list
“it”

my_list[-1]
True

#通过下标索引取出嵌套列表内的数据
my_list=[,]

my_list


my_list
1

#下标索引值超出范围无法取出元素且会报错

#列表的常用操作方法
方法和函数的功能一样,有传入参数,有返回值,只是方法的使用格式不同
函数的使用:num=add(1,2)
方法的使用:student=Student()
            num=student.add(1,2)

列表的一系列功能
#查询功能
功能:查询指定元素在列表的下标,如果找不到报错ValueError
语法:list.index(元素)
index就是列表对象(变量)内置的方法(函数)

my_list=
my_list.index(1)
print(f”1在列表中的下标索引值为:{index})
0
#有多个相同元素会输出第一个的下标索引值
如果被查找的元素不存在会报错

#修改下标索引的值
语法:list[下标]=值
对应的下标索引元素进行重新赋值

#插入元素
语法:list.insert(下标,元素)
在指定的下标位置插入指定的元素

#追加元素
语法:list.append(元素)
将指定的元素追加到列表的尾部

#追加元素方式2
语法:list.extend(其他数据容器)
将其他数据容器的内容取出依次追加到列表尾部

#删除元素
语法1:del list[下标]
语法2:list.pop(下标)
删除列表指定下标的元素,语法2可通过变量去接收删除的元素
element=my_list.pop(2)

#删除某元素在列表中的第一个匹配项
语法:列表.remove(元素)

#清空列表
语法:list.clear()
将列表清空变为空列表

#统计某元素在列表内的数量
语法:list.count(元素)
可通过变量去接收返回值

#统计列表内共有多少元素
语法:len(列表)

#列表的特点
可以容纳多个元素,上限2^63-1个
可以容纳不同类型的元素
数据是有序存储的,可以下标索引
允许重复数据存在
可以修改


#列表的遍历
while循环和for循环来遍历列表
语法:
index=0
while index<len(列表):
    元素=列表
对元素进行处理
index+=1
语法:
for 临时变量 in 数据容器:
对临时变量进行处理

#表示从容器中依次取出元素并赋值到临时变量上,在每一次的循环中我们可以对临时变量进行处理

#while循环可以自定义循环条件进行自行控制
for循环不可以自定义循环条件,只可以一个个从容器中取出数据

17、元组tuple
列表是可以被修改的,元组一旦定义完成就不可修改
#元组的定义格式
元组字面量
(元素1,元素2,元素3.......)
元组变量
变量名称=(元素1,元素2,元素3.......)
空元组
变量名称=()
变量名称=tuple()

#元组的嵌套
t1=((“it”),(“hello”))

#通过下标索引取出内容
和列表相同

#元组的方法
index(元素)   查找相应元素的下标
count(元素)   统计元素的数量
len(元组)   统计元组元素数量

#元组的遍历
index=0
while index<len(元组):
元组元素处理
index+=1


for element in 元组:
元组元素处理
元组的元素不可修改,但元素内部的内容可变换
例如
t=(1,2,[“it”,”hello”])
t=”me”
print(“t”)
(1,2,[“me”,”hello”])

#元组的特点
可容纳多个数据
可容纳不同类型数据
数据有序存储可下标索引
允许重复数据存在
不可修改
支持while,for循环

18、字符串

FishC 发表于 2024-8-21 21:05:12

鱼油,你的程序基本思路是正确的,但在几个地方可以做细节上的改进。下面是一个改进后的版本,确保了简洁性和可读性:

# 定义全局变量
money = 5000
name = input("请输入您的姓名:")

# 定义查询函数
def query(show_head):
    if show_head:
      print("__________查询余额_______________")
    print(f"{name},您好,您的余额剩余{money}元")

# 定义存款函数
def saving(num):
    global money
    money += num
    print("__________存款_______________")
    print(f"{name},您好,您存款{num}元成功")
    query(False)

# 定义取款函数
def get_money(num):
    global money
    if num <= money:   
      money -= num
      print("__________取款_______________")
      print(f"{name},您好,您取款{num}元成功")
    else:
      print(f"{name},余额不足!")
    query(False)

# 定义主菜单函数
def main():
    print("__________主菜单_______________")
    print(f"{name},您好,欢迎使用,请选择您所需要的服务:")
    print("查询余额输入1")
    print("存款输入2")
    print("取款输入3")
    print("退出输入4")
    return input("请输入您的选择:")

# 设置无限循环确保程序不退出
while True:
    keyboard_input = main()
    if keyboard_input == "1":
      query(True)
    elif keyboard_input == "2":
      num = int(input("您的存款金额为:"))
      saving(num)
    elif keyboard_input == "3":
      num = int(input("您的取款金额为:"))
      get_money(num)
    elif keyboard_input == "4":
      print("程序退出")
      break
    else:
      print("无效的选择,请重新输入")

改动和注意点:
1. 在`query`函数中,`show_head`参数控制是否打印标题。
2. `saving`和`get_money`函数中都调用`query(False)`来显示最新余额。
3. `get_money`函数中添加了余额检查,确保取款时余额足够。
4. 在主菜单函数中增加了每个选项的对应输入内容,方便用户理解。
5. 无限循环中的`if...elif`判断结构内增加了正确的退出条件和无效输入的处理。

这样就可以保证程序的健壮性及用户友好的体验了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 新手小白学习笔记第四弹