Python基础入门编程代码练习(四)

一、遍历列表

通过 input输入3个人信息,每个人有姓名和年龄,将信息存入字典中,并将将字典存入列表。

遍历列表,打印每个人的信息,打印格式如下:

  • 张三 20
  • 李四 22
  • 王五 23

1. 输入三个人的信息 (输入 input('提示信息') 可以考虑使用 循环)

2. 每个人有姓名和年龄, (都需要使用 input 输入, 一次循环两个 input)

3. 将姓名和年龄信息存入字典中 {"name": xxx, "age": xxx}/ {输入的姓名: 年龄}

4. 并将将字典存入列表。  列表.append(数据)

实现代码如下:

name_age_dict = dict()

for idx in range(3):
        name_age = input("请输入[姓名,年龄][{}]:".format(idx+1))
        name = name_age.split(",")[0]
        age = name_age.split(",")[1]
        name_age_dict[name] = age
        i = 1
        for name, age in name_age_dict.items():
           print("{} {} {}".format(i, name, age))
           i += 1
           print("-" * 100)

运行结果:

二、判断字典中 ID奇偶数

my_list = [{'id': 1,'money': 10}, {'id': 2, 'money': 20},
           {'id': 3, 'money': 30}, {'id': 4, 'money': 40}]
1. 如果字典中 ID 的值为奇数,则对 money 的值加 20
2. 如果字典中 ID 的值为偶数, 则对 money 的值加 10
3. 打印输出列表,查看最终的结果

实现代码如下:

my_list = [{'id': 1, 'money': 10}, {'id': 2, 'money': 20}, {'id': 3, 'money': 30}, {'id': 4, 'money': 40}]

def func():
    for i in my_list:
        if i.get('id') % 2 == 1:
            i['money'] = i.get('money') + 20
        else:
            i['money'] = i.get('money') + 10
    print(my_list)
func()

运行结果:

三、从程序运行的日志信息中提取数据

my_dict = {'登录': [{'desc': '正确的用户名密码', 'username': 'admin', 'password': '123456', 'expect': '登录成功'},
                    {'desc': '错误的用户名', 'username': 'root', 'password': '123456', 'expect': '登录失败'},
                    {'desc': '错误的密码', 'username': 'admin', 'password': '123123', 'expect': '登录失败'},
                    {'desc': '错误的用户名和密码', 'username': 'aaaa', 'password': '123123', 'expect': '登录失败'}],
           '注册': [{'desc': '注册1', 'username': 'abcd', 'password': '123456'},
                    {'desc': '注册1', 'username': 'xyz', 'password': '123456'}]}

模拟场景:从程序运行的日志信息中  提取数据
1. 自定义以程序, 实现如下要求
2. 能够获取测试人员输入的信息(登录/测试)
3. 需要将提取到的数据组成元组类型(定义元组)
4. 需要将元组添加到一个新的列表中  append()
5. 将提取到的数据在控制台打印出来

实现代码如下:

my_dict = {
  "登录": [
    {
      "desc": "正确的用户名密码",
      "username": "admin",
      "password": "123456",
      "expect": "登录成功"
    },
    {
      "desc": "错误的用户名",
      "username": "root",
      "password": "123456",
      "expect": "登录失败"
    },
    {
      "desc": "错误的密码",
      "username": "admin",
      "password": "123123",
      "expect": "登录失败"
    },
    {
      "desc": "错误的用户名和密码",
      "username": "aaaa",
      "password": "123123",
      "expect": "登录失败"
    }
  ],
  "注册": [
    {
      "desc": "注册1",
      "username": "abcd",
      "password": "123456"
    },
    {
      "desc": "注册1",
      "username": "xyz",
      "password": "123456"
    }
  ]
}

def ceshiinform():
    inform=[]
    mytuple=()
    opt=input("请输入需要获取的信息:")
    print(f"想要获取的信息为{opt}")
    if opt=='注册':
        print('获取注册信息如下:')
        for i in my_dict.get('注册'):
                    mytuple=(i.get('username'),i.get('password'))
                    inform.append(mytuple)
        print(inform)
    elif opt=='登录':
        print ('获取登录信息如下:')
        for i in my_dict.get('登录'):
            mytuple=((i.get('username')),i.get('password'))
            inform.append(mytuple)
        print(inform)
ceshiinform()

运行结果:

四、计算平均分和总成绩

  1. 从键盘接收三门课分数,计算三门课的平均分和总成绩,编写函数实现功能

实现代码如下:

a1=input("请输入java成绩:")
a2=input("请输入C#成绩:")
a3=input("请输入DB成绩:")
b1=int(a1)
b2=int(a2)
b3=int(a3)
print("总成绩为:%d"%(b1+b2+b3))
print("均分:%d"%((b1+b2+b3)/3))

运行结果:

五、客户姓名添加和显示

  1. 创建函数,实现客户姓名的添加和显示

    实现代码:
name1 = input('请输入客户姓名:')
name2 = input('请输入客户姓名:')
name3 = input('请输入客户姓名:')
name4 = input('请输入客户姓名:')

students = [
    {'name1': name1, 'name2': name2, 'name3': name3, 'name4': name4},
]


print('*******************')
print('客户姓名列表:')
print('*******************')

print(students)

运行结果:

六、修改客户姓名

  1. 修改学生姓名,输入新、旧姓名,进行修改并显示是否修改成功

实现代码如下:

import pprint

name1 = input('请输入客户姓名:')
name2 = input('请输入客户姓名:')
name3 = input('请输入客户姓名:')
name4 = input('请输入客户姓名:')

students = [
    {'name1': name1, 'name2': name2, 'name3': name3, 'name4': name4},
]


print('*******************')
print('客户姓名列表:')
print('*******************')

print(students)


students = [
    {'name1': name1, 'name2': name2, 'name3': name3, 'name4': name4},

    ]

name1 = input('请输入你要修改学生的姓名:')

for stu in students:

    if name1 == stu['name1']:
        print('(如果不想修改,直接回车!)')
        name1 = input('请重新输入学生的姓名:')

        if name1:
            stu['name1'] = name1
            break
else:
    print('该学生不存在, 请检查名字是否输入正确!')

pprint.pprint(students)

运行结果:

七、模拟银行账户业务

  1. 模拟银行账户业务
  2. 添加带参函数实现存款和取款业务
      • 存款时帐户初始金额为0
      • 取款时如果余额不足给出提示

实现代码如下:

import datetime


class Bank(object):
    account_log = []

    def __init__(self, name):
        self.name = name

    def deposit(self, amount):      # 存钱
        user.balance += amount
        self.write_log('存钱', amount)

    def withdrawal(self, amount):   # 取钱
        if amount > user.balance:
            print("余额不足")
        else:
            user.balance -= amount
            self.write_log('取钱', amount)

    def write_log(self, type, amount):  # 写日志
        now = datetime.datetime.now()
        ct = now.strftime("%Y-%m-%d %H:%M:%S")
        data = [self.name, user.name, ct, type, amount, f"{user.balance:.2f}"]
        Bank.account_log.append(data)


class User(object):
    def __init__(self, name, balance):
        self.name = name
        self.balance = balance

    def print_log(self):
        for item in Bank.account_log:
            print(item)


def show_menu():
    menu = '''
    0: 退出
    1: 存款
    2: 取款
    '''
    print(menu)


bank = Bank("贵阳银行")
user = User('lxw-pro', 520)

while True:
    show_menu()
    num = int(input("请输入菜单编号:"))
    if num == 0:
        print("谢谢使用!")
        break
    elif num == 1:
        print("存款")
        amount = float(input("请输入存款金额:"))
        bank.deposit(amount)
        print(f"当前金额是{user.balance:.2f}")
    elif num == 2:
        print("取款")
        amount = float(input("请输入取款金额:"))
        bank.withdrawal(amount)
        print(f"当前金额是{user.balance:.2f}")
    else:
        print("输入有误!")

0

 运行结果:

猜你喜欢

转载自blog.csdn.net/qq_63010259/article/details/130612053