Python初级案例教学【第二课】(Python 黑客对讲机,模拟个人用户登录,银行金额大写汉字转换)

举报
南蓬幽 发表于 2022/05/17 10:37:51 2022/05/17
【摘要】 Python模拟个人用户登录 Python银行金额大写汉字转换 业务需求: 示例: 关键技术分析: 编程思路: Python竞猜商品价格 编写一个函数,将黑客精英发送的信息转换为暗语输出 总结: Python模拟个人用户登录业务需求:要求:账号:admin 密码:1231.登录时给3次机会。2. 如果成功,显示欢迎xxx。3. 如果登录失败,显示录入错误你还有x次机会。如果3次机会使用完毕...

Python模拟个人用户登录

业务需求:
要求:账号:admin 密码:123
1.登录时给3次机会。
2. 如果成功,显示欢迎xxx。
3. 如果登录失败,显示录入错误你还有x次机会。如果3次机会使用完毕,则显示登录超限,请明天再登录。
关键技术分析:
• 1. 登录需要用户名和密码,也就是两个字符串。
• 2. 用户名和密码应该使用键盘输入,获取两个字符串。
• 3. 怎么样才算登录成功?需要注册的时候所使用的用户名和密码。
• 4. 验证输入的用户名和密码和注册时是否一致。
• 5. 3次机会,使用for
• 6. 如果登录成功需要跳出循环。显示欢迎xxx。如果失败,需要if判断是否机会使用完毕

for i in range(3):
    name = input('请输入用户名:')
    pwd = input('请输入密码:') 
    if name == 'admin' and pwd == '123':
       print('欢迎:'+name)        
       break    
    elif i < 2:
       n = int(2-i)
       print('输入错误,你还有%d次机会' % n)       
       continue   
    else:     
       print('登录超限,请明天再登录')                 
       break

Python银行金额大写汉字转换

业务需求:

银行电子支票业务在金额部分需要使用大写的汉字,因此需要将用户录入的数字信息转变为汉字。
• 目前只需完成1~5位整数转换即可。

示例:

输入金额:> 32542
汉字转换:> 叁 萬 贰 仟 伍 佰 肆 拾 贰 圆 整

关键技术分析:

• 使用For循环完成数字每一位的拆解。
• 利用列表下标实现对位转换。

编程思路:

程序可以拆分为3个环节实现:
需要创建两个列表,为后续对位转换做准备:
环节1:计算出用户输入金额的位数;
环节2:利用已知位数完成每一位的拆解;
环节3:通过列表下标对位实现最终输出。
• 开发技巧:
需要创建两个列表,为后续对位转换做准备:
• 汉字列表:[‘零’, ‘壹’, ‘贰’, ‘叁’, ‘肆’, ‘伍’, ‘陆’, ‘柒’, ‘捌’, ‘玖’, ‘拾’]
• 单位列表:[‘圆’,‘拾’, ‘佰’, ‘仟’, ‘萬’]

list_chinese = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾']
list_unit = ['圆', '拾', '佰', '仟', '萬']

money = input('input 金额 五位以下: ')
price = int(money[:5])  # 去除首位的0
list_price = list(str(price))

end_zero = 1  # 末尾是否为0
now = 1  # 当前是否为0
len_price = len(list_price)

for i in range(len_price):
    list_price[i] = list_chinese[int(list_price[i])]  # 对位转换成大写

zero = list_chinese[0]  # 零

if list_price[-1] == zero:
    end_zero = 0

for i in range(len_price):
    if len_price == 1 and end_zero == 0:
        print(list_price[0], end='')
        print(list_unit[0], end='')  # 0时
        break
    elif i == len_price - 1 and end_zero == 0:
        print(list_unit[0], end='')
        break
    elif i == len_price - 1 and end_zero == 1:
        print(list_price[i], end='')
        print(list_unit[len_price - i - 1], end='')
    else:
        if list_price[i] == zero:
            now = 0  # 当前为0
        else:
            now = 1
        if now == 1 or (now == 0 and list_price[i - 1] != zero and end_zero == 1):
            print(list_price[i], end='')
        if now == 1 and i != len_price - 1:  # 若当前不为0
            print(list_unit[len_price - i - 1], end='')

print('整')

Python竞猜商品价格

请添加图片描述

import random
n = random.randint(1, 600)
# print(n)
for i in range(10):
    m = int(input('请输入竞猜价格:'))
    if m < n:
        print('价格低了,请继续')
    elif m > n:
        print('价格高了,请继续')
    else:
        print('你真厉害,猜对了!')
        break
    if i == 9:
        print('本次竞猜失败,请下次努力')


编写一个函数,将黑客精英发送的信息转换为暗语输出

如发送的信息中含有数字0,就把数字 0替换为暗语字母 O 。含有数字2, 2替换为暗语学母 Z

请添加图片描述

def jiami(list1, list2):
    list3 = []
    for i in list1:
        list3.append(list2[int(i)])
    return list3


if __name__ == '__main__':
    lis1 = input('请输入一组数字信息:')
    lis2 = ['O', 'I', 'Z', 'E', 'Y', 'S', 'G', 'L', 'B', 'P']
    n = jiami(lis1, lis2)
    print(n)

总结:

通过这几个案例对Python有了更加深刻地理解!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。