练习

设计一个简单的 ATM 机模拟程序(考察Python循环知识点)
## 一、需求说明
1. 初始界面显示密码输入框,预设正确密码为 123456。
2. 密码输入错误时,提示 “密码错误,退出程序”;密码输入正确时,进入主菜单。
3. 主菜单需提供 4 个选项:1. 查询余额、2. 存款、3. 取款、4. 退出,且需通过Python循环实现“选择操作后不直接退出,可继续选择其他操作(除退出外)”的功能。
4. 各功能需遵循以下规则:
   - **查询余额**:显示当前余额(初始余额为 1000 元)。
   - **存款**:输入存款金额(必须为正数),若金额合法则更新余额并显示;否则提示 “存款金额无效”。
   - **取款**:输入取款金额(必须为正数且不超过当前余额),若金额合法则更新余额并显示;否则提示 “取款金额无效” 或 “余额不足”。
   - **退出**:显示 “感谢使用,再见!” 并结束程序,同时需通过循环控制语句实现“跳出循环、终止程序”的效果。

## 二、考察重点
1. `while` 循环的使用(如创建持续显示主菜单的循环)。
2. 循环控制语句(`break`)的应用(如选择“退出”时跳出循环)。
3. 循环与条件判断(`if-elif-else`)的结合使用(如在循环内处理不同菜单选项)。

password = input("请输入密码:")
if password=="123456":
    money = 1000
    while True:
        xuanze = input("1. 查询余额、2. 存款、3. 取款、4. 退出")
        if xuanze=="1":
            print(f"当前余额{money}")
        elif xuanze=="2":
            cun = int(input("请输入存款金额:"))
            if cun>0:
                money += cun
                print(f"当前的账户余额未{money}")
            else:
                print("存款金额无效")
        elif xuanze=="3":
            qu = int(input("请输入取款金额:"))
            if money>=qu>0:
                money -= qu
                print(f"取款{qu}成功,当前余额是{money}")
            else:
                print("取款金额无效")
        else:
            print("退出应用程序")
            break


else:
    print("密码错误,退出程序")

容器---list 列表  [1,2,"zhnagsan",4]


list()  强制转换列表    列表中的元素数据类型是可以不同的
 如何访问列表中的元素    列表名[索引下标]
 list1 = ["zhnagsan",12,True,"lisi"]

 list1[1] = "xigongshang"
 print(list1)


  添加元素


 list1.append("kkkkk")
 print(list1)
 list1.extend(["a",12,13])
 print(list1)
 list1.insert(追加元素的位置下标,追加的元素内容)
 list1.insert(0,"xigongshang")
 print(list1)
删除第一个匹配到的元素
 list1.remove(12)
 print(list1)
pop():默认删除的是列表的最后一个元素,并返回删除的元素
 pop(下标)删除对应下标的元素
 a = list1.pop(1)
 print(a)
  清空列表clear()
 list1.clear()
 print(list1)
 index() 但会第一个匹配的元素的下标
 print(list1.index(12))
count()统计元素出现的次数
 print(list1.count(12))
 list2 = [1,21,12,32,44,3,5]
 list2.reverse()
 print(list2)
 list2.sort(reverse=True)   #降序
 print(list2)


 list1 = [[1,2,3],[4,5,[7,8,9]]]
 print(list1[1][2][1])

 ????   想要对列表做一个备份,复制一份列表,我可以怎么办????
 


 copy()  拷贝
 list2 =list1.copy()
 list2.append("12345")
 print(id(list2))
 print(id(list1))
import  copy


list1 = [1,2,3,["zhangsan",5,6]]
list2 = copy.deepcopy(list1)
list1[3][0]=12
 print(id(list1[3]))
 print(id(list2[3]))
 print(list1)# print(list2)

更加简介更加高效的创建列表
对每一个元素的操作 for 可迭代的每一个元素 in 可迭代的对象 if 判断条件


 0,1,2,3,4,5,6,7,8,9
 list1 = [i*2 for i in range(10)]
 print(list1)
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
list1 = [1,2,3,4,5]
 list2 = []
 for i in list1:
     list2.append(i*i)
 print(list2)
list2 = [i*i for i in list1]
print(list2)


0-20之间所有的偶数组成的列表
 list5 = [i for i in range(0,21) if i%2==0]
 print(list5)

a = [1,2,3,4]
b=["a","b","c","d"]

# [[1,a],[1,b]]
list3 = [[i,j] for i in a for j in b]
print(list3)

'''
1. 创建一个包含0到9的平方的列表
2. 从0到19中选出所有偶数的列表
3. 将字符串"hello"转换为包含每个字符的大写形式的列表   


'''
print([i*i for i in range(0,10)])
print([i for i in range(20) if i%2==0])
print([i.upper() for i in "hello"])

len()   返回序列的长度的
list1 = [1,"cdcdd",3,43,0,65,7]
# print(len("hello,python"))
# # min() max()查找最小值和最大值的
# print(min(list1))
# print(max(list1))
#
# #求和
# print(sum(list1))


 any()(判断序列中是否存在某种数据类型的)   all()判断序列中是否全部都是某种数据类型
 当可迭代对象中的所有元素转换为布尔值后都是 True 时,返回 True
print(any(list1))

 元组是不可变的序列,同时存储多个元素
 1、(元素1,元素2,元素3……)
 tuple1 = (1,2,"zhnagsan","lisi")
 print(tuple1[-1])
 tuple1[0] = 2222
 2、tuple( )
 print(tuple("hello"))
 print(tuple([1,2,3,4,5]))
>>> tuple1=(1,)   #创建只有一个元素的元组时,必须在这个元素的后面加上,
tuple1 = (1,"zhnagsan",3,["zhnagsan",2,3,4])

元组的解包


print(3 in tuple1)

元组本身不可变,但是内部的元素如果是可变的复杂数据类型,那么这个负责数据类型是可变的
a,b = ("zhangsan","lisi")

print(a,b)

a,b,c =  eval(input("请输入三角形的三边,用,隔开:"))
print(a,b,c)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐