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

news2024/9/21 2:40:50

一、遍历列表

通过 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

 运行结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qiankun 微前端 demo(Vue2)

前言 这是我最近刚开始学微前端(qiankun框架)做的一个小demo,做的时候还是遇到很多问题的,在网上也是看了很多别人的Blog,最后也是磨出来了😂😂😂;这篇文章总统分为分为…

国产麒麟操作系统 myCat1.6读写分离

我的环境是麒麟操作系统,我只配置读写分离 一、使用说明,java环境,解压就能用 下载地址https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz mycat 是j…

OJ刷题之旅

题目 现在给你两种颜色的箩筐,需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。 输入 输入是一个个的三元组,分别是,外…

SpringCloud使用SkyWalking实现分布式链路追踪1

文章目录 一、MicrometerTracingBrave(Sleuth)链路追踪1、MicrometerTracingBrave和Zipkin的概论2、Docker搭建Zipkin服务3、MicrometerTracingBrave和Zipkin实现链路追踪 二、SkyWaking服务的安装与使用1、SkyWalking的概论2、Java探针的环境搭建3、Java探针实现日志监控4、Sk…

Netty——介绍和maxContentLength配置

官网 介绍 Netty框架的设计思路是基于NIO的事件驱动编程模型,核心组件包括: Channel:通道,负责网络数据的读写操作; EventLoop:事件循环,处理I/O事件和用户自定义事件; ChannelFut…

【子集树】输出一个序列的子序列

【子集树】输出一个序列的子序列 给一个序列 1 2 3 输出序列的子集 1 2 3 12 13 23 123 如何实现&#xff1f; 由上可以看出 类似于全排列 如何用全排列 实现子集输出&#xff1f; 也就是子集树&#xff1f; #include<iostream>using namespace std;const int N 1e5…

【C++技能树】令常规运算符用在类上 --类的六个成员函数II

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法…感兴趣就关注我吧&#xff01;你定不会失望。 本篇导航 0.运算符重载1.赋值运算符 重载2.比较运算符 重载3.比较运算符 ! 重载4.比较运算符 < 重载5.比较运算符 < 重载6. 比较…

图片处理软件:分享6款非常实用的图片处理工具

目录 一、移动端 1、snapseed 2、一键抠图 3、pixlr 二、电脑端 1、图片编辑助手 2.GIMP 3、photopea 今天给大家分享6款非常实用的图片处理工具&#xff0c;其中包含移动端和电脑端&#xff0c;每一款都非常实用&#xff0c;希望对大家能有所帮助&#xff01; 一、移…

《编程思维与实践》1059.计算a的n次方的大整数

《编程思维与实践》1059.计算a的n次方的大整数 题目 思路 高精度的问题统一的解决思路是用一个数组去存大整数的每一位数,运算转化为对数组的操作. 可以从个位开始存(逆序),也可以从最高位开始存(顺序),以处理方便为主要考虑因素. 同时可以将大整数定义为一个结构体,包含位数,…

软件架构:理解分析三层结构观点

三层结构的简单描述及优点   三层体系结构&#xff0c;即用户层、应用层和数据库服务器。用户层主要指用户界面&#xff0c;它要求尽可能的简单&#xff0c;使最终用户不需要进行任何培训就能方便地访问信息&#xff1b;第二层就是应用服务器&#xff0c;也就是常说的中间件&…

webpack: 4 loader汇总(style-loader等)

所有的loader必须匹配规则&#xff0c;否则不生效 配置文件中&#xff0c;module中rules的use执行顺序是从后往前执行 url-loader 用于将文件转换为base64 URI的webpack加载程序。 options limit limit指定文件大小&#xff0c;小于limit的图片不会生成图片以base64格式被引入…

客观地说,应该看一看 Web3.0 了

武术圈有名言&#xff1a;“八极加劈挂&#xff0c;神鬼都害怕”。要是 Web3.0AGI 的话&#xff0c;世界将会变成什么样子&#xff1f; 数科星球原创作者丨苑晶编辑丨大兔 Web3.0 的价值开始受到重视&#xff0c;在最近&#xff0c;来自香港的好消息再次带火了这个领域的热度。…

VMware NSX-T Data Center 3.2.3 - 数据中心网络全栈虚拟化

VMware NSX-T Data Center 3.2.3 - 数据中心网络全栈虚拟化 重要更新&#xff1a;修复 136 个 bug。 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-nsx-t-3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org VMwa…

ChatGPT 接入飞书教程,创建自己的聊天机器人

ChatGPT 接入飞书教程,创建自己的聊天机器人 一、飞书进入开发者平台。点击创建应用。二、打开Aircode,点击创建应用,上面输入名字,下面选择Node.js v16三、配置环境,点击Environments,创建四个变量,全部要大写本教程收集于: AIGC从入门到精通教程 首先,准备三个账号…

FPGA实现MPEG2视频压缩PCIe传输 提供软硬件工程源码和技术支持

目录 1、前言2、MPEG2视频压缩实现3、我已有的FPGA图像视频编解码方案4、我已有的PCIE方案5、MPEG2视频压缩PCIE传输设计方案FPGA硬件设计软件设计 6、Vivado工程详解7、Linux下的XDMA驱动安装8、上板调试验证9、福利&#xff1a;工程代码的获取 1、前言 MJPEG、MPEG2、MPEG4、…

IOS开发指南之storyboard中控件与变量关联及控件事件与方法关联

1.创建IOS工程 2.选择 interface为storyboard,语言选择Objective-C 打开工程后可看到工程默认添加了两个storyboard文件 Main.storyboard为应用主场景,LaunchScreen为启动屏幕场景 3.双击Main.storyboard打开设计窗口,并拖放控件布局如下 4.为控件添加关联变量与(IBOutlet与I…

身高测量仪红外传感测距模块应用方案 WTU201F2 B004 低功耗

​身高测量仪被广泛用于医疗、教育等领域&#xff0c;而红外测距模块在身高测量仪中的应用则成为了一种新的技术手段。红外测距模块是基于红外线技术的一种测距器件&#xff0c;在身高测量仪中&#xff0c;红外测距模块能够精准地测量出人体的高度。与传统的测量方法相比&#…

品牌如何从零开始运营抖音,带你全面了解

随着短视频逐渐深入我们的生活&#xff0c;巨大的流量吸引了众多人群。很多人因此也想开始做抖音&#xff0c;很多品牌却因为内容制作流程复杂&#xff0c;不知从何入门。今天&#xff0c;和大家分享下品牌如何从零开始运营抖音。 其实在开始一件事情之前&#xff0c;最主要的是…

智能感测离子风棒,托起中国“智”造新高度

智能感测离子风棒采用市面上较为少见的内置感测型离子发生器&#xff0c;能够对外界环境电荷进行快速平衡。该设备智能控制&#xff0c;无需人工点检&#xff0c;达到全自动静电消除并具备异常报警功能。能让ESD管理者或使用者先一步发现问题&#xff0c;快速准确的解决问题 。…

Shell脚本例题

1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数&#xff0c;并计算从1到该数之间所有整数的和 3.求从1到100所有整数的偶数和、奇数和 4.用户名存放在users.txt文件中&#xff0c;每行一个&#xff0c;判断文件里的用户是否存在&#xff0c;若该用户存在&#xf…