数据类型练习

Java练习题-数据类型转换&运算符&基本语法 Java练习题-数据类型转换&运算符&基本语法 第一题 按步骤编写代码,效果如图所示: 编写步骤: 定义类 Test1 定义 main方法 定义两个byte类型变量b1,b2,并分别赋值为10和20. 定义变量b3,保存b1和b2的和,并输出. 定义两个short类型变量s1,s2,并分别赋值为1000和2000. 定义变量s3,保存s1和s2的和,并输出. 定义一个char类型变量c1赋值为’a’,一个int类型变量i1赋值为10. 定义变量ch3,保存c1和i1的差,并输出. 阅读详情
"""

Name:Test3 第一题.py
Author: wanglang
Connect: 645461397@qq.com
Date: "2018-05-02"
Desc:
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述: 一行字符串,非空,长度小于5000。
输出描述: 整数N,最后一个单词的长度。
示例1:
输入:hello world
输出:5

"""
user_in = input('输入:').strip()
if len(user_in) <= 5000:
    print('%d' % (len(user_in.split(' ')[-1])))
else:
    print('错误输入!')

*********************************************************

"""

Name:Test3 第二题.py
Author: wanglang
Connect: 645461397@qq.com
Date: "2018-05-02"
Desc:
题目描述: 写出一个程序,接受一个有字母和数字以及空格组成的字符串,
和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。
输出描述: 输出输入字符串中含有该字符的个数。
示例1:
输入:ABCDEF A
输出:1
"""
user_in = input('输入:').strip()
user_in = user_in.split()
user_in1 = ''.join(user_in[:-1])
if user_in[-1].isdigit():#最后的字符是数字直接找
    print('%d' % (user_in1.count(user_in[-1])))
else:#最后字符是字母全部转换为大写再找
    print('%d' % (user_in1.upper().count(user_in[-1].upper())))

*****************************************************

"""

Name:Test3 第三题.py
Author: wanglang
Connect: 645461397@qq.com
Date: "2018-05-02"
Desc:
密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。
哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。
假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个
密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可
以明目张胆地放在显眼的地方而不被别人知道真正的密码。
他是这么变换的,大家都知道手机上的字母: 1--1, abc--2, def--3, ghi--4,
jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,渊子把密码
中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,
声明:密码中没有空格,而密码中出现的大写字母则变成小写之后往后移一位,如:X,先
变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。
输入描述:输入包括多个测试数据。输入是一个明文,密码长度不超过100个字符,输入直到文件结尾;
输出描述:输出渊子真正的密文
示例1:
输入:YUANzhi1987
输出:zvbo9441987
"""
str1 = 'abcdefghijklmnopqrstuvwxyz'#定义一个字符串
dict1 = {'2': ['a', 'b', 'c'], '3': ['d', 'e', 'f'], '4': ['g', 'h', 'i'],
         '5': ['j', 'k', 'l'],'6': ['m', 'n', 'o'], '7': ['p', 'q', 'r', 's'], 
         '8': ['t', 'u', 'v'], '9': ['w', 'x', 'y', 'z']}#定义一个字典
list1 = []#空列表
fpasswd = input('输入:').strip()
for i in fpasswd:#依次译码添加进列表
    if i.isupper():
        if i == 'Z':
            list1.append('a')
        else:
            list1.append(str1[str1.index(i.lower()) + 1])#对输入的大写字母译码
    elif i.islower():
        for j in dict1:
            if i in dict1[j]:
                list1.append(j)#对输入的小写字母进行译码
            else:
                pass
    else:
        list1.append(i)
print(''.join(list1))

****************************************************

"""

Name:Test3 第四题.py
Author: wanglang
Connect: 645461397@qq.com
Date: "2018-05-02"
Desc:
给定一个正整数,编写程序计算有多少对质数的和等于输入的
这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
- 输入描述:
输入包括一个整数n,(3 ≤ n < 1000)
- 输出描述:
输出对数
- 示例1 :
输入:
10
输出:
 2

"""

user_in = int(input('输入:'))
list1 = []
num = 0
# 列出1000以内的质数
for i in range(2, 1000):
    list2 = []
    for j in range(2, i):
        list2.append(i % j)
    if 0 in list2:
        pass
    else:
        list1.append(i)
# 求满足条件的质数对个数
for i in list1:
    for j in list1:
        if user_in == i + j and i != j:
            num += 1
        else:
            pass
print(num)

*************************************************************

"""

Name:Test4 第一题.py
Author: wanglang
Connect: 645461397@qq.com
Date: "2018-05-02"
Desc:
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,
点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数
(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的
IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。
输入描述:输入一个ip地址
输出描述:返回判断的结果YES or NO
示例1
输入: 10.138.15.1
输出: YES
"""
user_in = input('输入:')
num = 0
for i in user_in.split('.'):#分成四部分判断
    if int(i) <= 255:
        num += 1
if num == 4:
    print('YES')
else:
    print('NO')

************************************************************************

自动售货系统!!!!

大体代码如下:

admininfo = {'wanglang': '000000'}
moneyinfo = {'1元': 100, '2元': 100, '5元': 50, '10元': 50}
goodsinfo = {'001': ['绿茶', '1', '30'], '002': ['可乐', '2', '30'], '003': ['雪碧', '2', '30'],
             '004': ['红茶', '3', '30'], '005': ['咖啡', '5', '30'], '006': ['红牛', '7', '30']}
print('自动售货系统'.center(50, '*'))
view = '''                    1).查询商品信息
                    2).购买商品
                    3).存钱盒信息
                    4).初始化
'''
while 1:
    print(view)
    choice = int(input('请输入选择:'))
    if choice == 1:
        print('\t 种类:\t 价格:\t数量:')
        for i in goodsinfo:
            print('%s  %s' % (i, '      '.join(goodsinfo[i])))
    elif choice == 2:
        purchase()#定义购买函数
    elif choice == 3:
        print(moneyinfo)
    elif choice == 4:
        print('管理员登陆!'.center(50, '*'))
        for enter_count1 in range(3):
            user_name = input('请输入用户名:').strip()
            if user_name not in admininfo:
                print('该用户不存在!请重新输入!')
            else:
                user_passwd = input('请输入密码:').strip()
                if user_passwd == admininfo[user_name]:
                    print('登陆成功!')
                    mod()#定义初始化函数
                    break
                else:
                    print('密码错误!')
        else:
            print('错误输入三次!系统退出')
    else:
        print('请输入正确的选择!')

主要的购买函数定义如下:

<该函数完成了投币<输入模拟>,找钱<从大到小依次找钱>,钱币数量变动和商品数量变动的功能>


def purchase():
    while 1:
        num = input('请输入您要购买的产品编号(q退出购买!):')
        if num == 'q':
            break
        else:
            if num in ['001', '002', '003', '004', '005', '006']:
                if int(goodsinfo[num][2]) == 0:
                    print('该商品已售空!请重新选择!')
                else:
                    print('种类:\t价格:\t数量:')
                    print('     '.join(goodsinfo[num]))
                    while 1:
                        print('请投币%s元!' % (goodsinfo[num][1]))
                        pay = 0
                        pay += int(input('投币金额:'))
                        if pay >= int(goodsinfo[num][1]):
                            outmoney = pay - int(goodsinfo[num][1])
                            if outmoney >= 10:  # 找钱数大于10元
                                if outmoney // 10 <= moneyinfo['10元']:  # 10元的数量够找钱
                                    if outmoney % 10 >= 5:  # 找钱数大于5元
                                        if moneyinfo['5元'] >= 1:  # 5元的数量够找钱
                                            if outmoney % 10 - 5 >= 2:  # 找钱数大于2元
                                                if moneyinfo['2元'] >= (outmoney % 10 - 5) // 2:  # 2元的数量够找钱
                                                    if moneyinfo['1元'] >= (outmoney % 10 - 5) % 2 == 1:  # 1元的数量够找钱
                                                        print('购买成功!找您%s元!' % (outmoney))
                                                        moneyinfo['1元'] -= 1
                                                        moneyinfo['2元'] -= (outmoney // 10 - 5) // 2
                                                        moneyinfo['5元'] -= 1
                                                        moneyinfo['10元'] -= outmoney // 10
                                                        count = int(goodsinfo[num][2])
                                                        count -= 1
                                                        goodsinfo[num][2] = str(count)
                                                        break
                                                    elif (outmoney % 10 - 5) % 2 == 0:
                                                        print('购买成功!找您%s元!' % (outmoney))
                                                        moneyinfo['2元'] -= (outmoney // 10 - 5) // 2
                                                        moneyinfo['5元'] -= 1
                                                        moneyinfo['10元'] -= outmoney // 10
                                                        count = int(goodsinfo[num][2])
                                                        count -= 1
                                                        goodsinfo[num][2] = str(count)
                                                        break
                                                    else:  # 1元的数量不够找
                                                        print('购买失败!退款%s元!' % (pay))
                                                        break
                                                else:  # 2元的数量不够找
                                                    if moneyinfo['1元'] >= outmoney % 10 - 5 - moneyinfo['2元'] * 2:
                                                        print('购买成功!找您%s元!' % (outmoney))
                                                        moneyinfo['2元'] = 0
                                                        moneyinfo['1元'] -= outmoney % 10 - 5 - moneyinfo['2元'] * 2
                                                        moneyinfo['5元'] -= 1
                                                        moneyinfo['10元'] -= outmoney // 5
                                                        count = int(goodsinfo[num][2])
                                                        count -= 1
                                                        goodsinfo[num][2] = str(count)
                                                        break
                                                    else:
                                                        print('购买失败!退款%s元!' % (pay))
                                                        break
                                            else:  # 找钱数小于两块
                                                if moneyinfo['1元'] >= outmoney % 10 - 5 == 1:
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['1元'] -= 1
                                                    moneyinfo['5元'] -= 1
                                                    moneyinfo['10元'] -= outmoney // 10
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                elif outmoney % 10 - 5 == 0:
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                else:
                                                    print('购买失败!退款%s元!' % (pay))
                                                    moneyinfo['5元'] += 1
                                                    moneyinfo['10元'] += outmoney // 10
                                                    break
                                        else:  # 5元的数量不够找
                                            if moneyinfo['2元'] >= (
                                                            outmoney % 10 - moneyinfo[
                                                        '5元'] * 5) // 2:  # 2元的数量够找钱
                                                if moneyinfo['1元'] >= (
                                                                outmoney % 10 - moneyinfo[
                                                            '5元'] * 5) % 2 == 1:  # 1元的数量够找钱
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['1元'] -= 1
                                                    moneyinfo['2元'] -= (outmoney % 10 - moneyinfo['5元'] * 5) // 2
                                                    moneyinfo['5元'] = 0
                                                    moneyinfo['10元'] = outmoney // 10
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                elif (outmoney % 10 - moneyinfo['5元'] * 5) % 2 == 0:
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['2元'] -= (outmoney % 10 - moneyinfo['5元'] * 5) // 2
                                                    moneyinfo['5元'] = 0
                                                    moneyinfo['10元'] = outmoney // 10
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                else:  # 1元的数量不够找
                                                    print('购买失败!退款%s元!' % (pay))
                                                    break
                                            else:  # 2元的数量不够找
                                                if moneyinfo['1元'] >= outmoney % 10 - moneyinfo['5元'] * 5 - moneyinfo[
                                                    '2元'] * 2:
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['1元'] -= outmoney % 10 - moneyinfo['5元'] * 5 - moneyinfo[
                                                                                                                 '2元'] * 2
                                                    moneyinfo['2元'] = 0
                                                    moneyinfo['5元'] = 0
                                                    moneyinfo['10元'] = outmoney // 10
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                else:
                                                    print('购买失败!退款%s元!' % (pay))
                                                    break
                                    else:  # 找钱数小于5元
                                        if outmoney % 10 >= 2:  # 找钱数大于2元
                                            if moneyinfo['2元'] >= (outmoney % 10) // 2:  # 2元的数量够找钱
                                                moneyinfo['2元'] -= (outmoney % 10) // 2
                                                if moneyinfo['1元'] >= (outmoney % 10) % 2 == 1:  # 1元的数量够找钱
                                                    moneyinfo['1元'] -= 1
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                elif (outmoney % 10) % 2 == 0:
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                else:  # 1元的数量不够找
                                                    print('购买失败!退款%s元!' % (pay))
                                                    moneyinfo['2元'] += (outmoney % 10) // 2
                                                    moneyinfo['10元'] += outmoney // 10
                                                    break
                                            else:  # 2元的数量不够找
                                                if moneyinfo['1元'] >= outmoney % 10 - moneyinfo['2元'] * 2:

                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['1元'] -= outmoney % 10 - moneyinfo['2元'] * 2
                                                    moneyinfo['2元'] = 0
                                                    moneyinfo['10元'] = outmoney // 10
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                else:
                                                    print('购买失败!退款%s元!' % (pay))
                                                    break
                                        else:  # 找钱数小于两块
                                            if moneyinfo['1元'] >= outmoney % 10 == 1:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['1元'] -= 1
                                                moneyinfo['10元'] -= outmoney // 10
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            elif outmoney % 10 == 0:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['10元'] -= outmoney // 10
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            else:
                                                print('购买失败!退款%s元!' % (pay))
                                                break
                                else:  # 10元的数量不够找
                                    if moneyinfo['5元'] >= (outmoney - moneyinfo['10元'] * 10) // 5:  # 5元的数量够找钱
                                        if (outmoney - moneyinfo['10元'] * 10) % 5 >= 2:  # 找钱数大于2元
                                            if moneyinfo['2元'] >= (
                                                        (outmoney - moneyinfo['10元'] * 10) % 5) // 2:  # 2元的数量够找钱
                                                if moneyinfo['1元'] >= (
                                                            (outmoney - moneyinfo[
                                                                '10元'] * 10) % 5) % 2 >= 1:  # 1元的数量够找钱
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['1元'] -= 1
                                                    moneyinfo['2元'] -= ((outmoney - moneyinfo['10元'] * 10) % 5) // 2
                                                    moneyinfo['5元'] -= (outmoney - moneyinfo['10元'] * 10) // 5
                                                    moneyinfo['10元'] = 0
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                elif ((outmoney - moneyinfo['10元'] * 10) % 5) % 2 == 0:
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['2元'] -= ((outmoney - moneyinfo['10元'] * 10) % 5) // 2
                                                    moneyinfo['5元'] -= (outmoney - moneyinfo['10元'] * 10) // 5
                                                    moneyinfo['10元'] = 0
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                else:  # 1元的数量不够找
                                                    print('购买失败!退款%s元!' % (pay))
                                                    break
                                            else:  # 2元的数量不够找
                                                if moneyinfo['1元'] >= (outmoney - moneyinfo['10元'] * 10) % 5 - \
                                                                moneyinfo['2元'] * 2:
                                                    print('购买成功!找您%s元!' % (outmoney))
                                                    moneyinfo['1元'] -= (outmoney - moneyinfo['10元'] * 10) % 5 - \
                                                                       moneyinfo['2元'] * 2
                                                    moneyinfo['2元'] = 0
                                                    moneyinfo['5元'] -= (outmoney - moneyinfo['10元'] * 10) // 5
                                                    moneyinfo['10元'] = 0
                                                    count = int(goodsinfo[num][2])
                                                    count -= 1
                                                    goodsinfo[num][2] = str(count)
                                                    break
                                                else:
                                                    print('购买失败!退款%s元!' % (pay))
                                                    break
                                    else:  # 5元的数量不够找
                                        moneyinfo['5元'] = 0
                                        if moneyinfo['2元'] >= (
                                                        outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                    '5元'] * 5) // 2:  # 2元的数量够找钱
                                            if moneyinfo['1元'] >= (outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                '5元'] * 5) % 2 >= 1:  # 1元的数量够找钱
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['1元'] -= 1
                                                moneyinfo['2元'] -= (outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                    '5元'] * 5) // 2
                                                moneyinfo['5元'] = 0
                                                moneyinfo['10元'] = 0
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            elif (outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                '5元'] * 5) % 2 == 0:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['2元'] -= (outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                    '5元'] * 5) // 2
                                                moneyinfo['5元'] = 0
                                                moneyinfo['10元'] = 0
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            else:  # 1元的数量不够找
                                                print('购买失败!退款%s元!' % (pay))
                                                break
                                        else:  # 2元的数量不够找
                                            moneyinfo['2元'] = 0
                                            if moneyinfo['1元'] >= outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                '5元'] * 5 - moneyinfo['2元'] * 2:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['1元'] -= outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                                                                          '5元'] * 5 - \
                                                                   moneyinfo['2元'] * 2
                                                moneyinfo['2元'] = 0
                                                moneyinfo['5元'] = 0
                                                moneyinfo['10元'] = 0
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            elif outmoney - moneyinfo['10元'] * 10 - moneyinfo[
                                                '5元'] * 5 - moneyinfo['2元'] * 2 == 0:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['2元'] = 0
                                                moneyinfo['5元'] = 0
                                                moneyinfo['10元'] = 0
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            else:
                                                print('购买失败!退款%s元!' % (pay))
                                                break
                            elif 5 <= outmoney < 10:
                                if moneyinfo['5元'] >= 1:  # 5元的数量够找钱
                                    if outmoney - 5 >= 2:  # 找钱数大于2元
                                        if moneyinfo['2元'] >= (outmoney - 5) // 2:  # 2元的数量够找钱
                                            if moneyinfo['1元'] >= (outmoney - 5) % 2 >= 1:  # 1元的数量够找钱
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['1元'] -= 1
                                                moneyinfo['2元'] -= (outmoney - 5) // 2
                                                moneyinfo['5元'] -= 1
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            elif (outmoney - 5) % 2 == 0:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['2元'] -= (outmoney - 5) // 2
                                                moneyinfo['5元'] -= 1
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            else:  # 1元的数量不够找
                                                print('购买失败!退款%s元!' % (pay))
                                                break
                                        else:  # 2元的数量不够找
                                            if moneyinfo['1元'] >= outmoney % 5 - moneyinfo['2元'] * 2:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['1元'] -= outmoney % 5 - moneyinfo['2元'] * 2
                                                moneyinfo['2元'] = 0
                                                moneyinfo['5元'] -= 1
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            else:
                                                print('购买失败!退款%s元!' % (pay))
                                                break
                                    else:  # 找钱数小于2块
                                        if outmoney - 5 == 1:
                                            if moneyinfo['1元'] >= 1:
                                                print('购买成功!找您%s元!' % (outmoney))
                                                moneyinfo['1元'] -= 1
                                                moneyinfo['5元'] -= 1
                                                count = int(goodsinfo[num][2])
                                                count -= 1
                                                goodsinfo[num][2] = str(count)
                                                break
                                            else:
                                                print('购买失败!退款%s元!' % (pay))
                                                break
                                        else:
                                            print('购买成功!找您%s元!' % (outmoney))
                                            moneyinfo['5元'] -= 1
                                            count = int(goodsinfo[num][2])
                                            count -= 1
                                            goodsinfo[num][2] = str(count)
                                            break
                                else:  # 5块的数量不够找钱
                                    if moneyinfo['2元'] >= outmoney // 2:  # 2元的数量够找钱
                                        if moneyinfo['1元'] >= outmoney % 2 == 1:  # 1元的数量够找钱
                                            print('购买成功!找您%s元!' % (outmoney))
                                            moneyinfo['1元'] -= 1
                                            moneyinfo['2元'] -= outmoney // 2
                                            moneyinfo['5元'] = 0
                                            count = int(goodsinfo[num][2])
                                            count -= 1
                                            goodsinfo[num][2] = str(count)
                                            break
                                        elif outmoney % 2 == 0:
                                            print('购买成功!找您%s元!' % (outmoney))
                                            moneyinfo['2元'] -= outmoney // 2
                                            moneyinfo['5元'] = 0
                                            count = int(goodsinfo[num][2])
                                            count -= 1
                                            goodsinfo[num][2] = str(count)
                                            break
                                        else:  # 1元的数量不够找
                                            print('购买失败!退款%s元!' % (pay))
                                            break
                                    else:  # 2元的数量不够找
                                        moneyinfo['2元'] = 0
                                        if moneyinfo['1元'] >= outmoney - moneyinfo['2元'] * 2:
                                            print('购买成功!找您%s元!' % (outmoney))
                                            moneyinfo['1元'] -= outmoney - moneyinfo['2元'] * 2
                                            moneyinfo['2元'] = 0
                                            count = int(goodsinfo[num][2])
                                            count -= 1
                                            goodsinfo[num][2] = str(count)
                                            break
                                        else:
                                            print('购买失败!退款%s元!' % (pay))
                                            break
                            else:
                                if outmoney >= 2:
                                    if moneyinfo['2元'] >= outmoney // 2:
                                        if moneyinfo['1元'] >= outmoney % 2 == 1:
                                            print('购买成功!找您%s元!' % (outmoney))
                                            moneyinfo['1元'] -= 1
                                            moneyinfo['2元'] -= outmoney // 2
                                            count = int(goodsinfo[num][2])
                                            count -= 1
                                            goodsinfo[num][2] = str(count)
                                            break
                                        elif outmoney % 2 == 0:
                                            print('购买成功!找您%s元!' % (outmoney))
                                            moneyinfo['2元'] -= outmoney // 2
                                            count = int(goodsinfo[num][2])
                                            count -= 1
                                            goodsinfo[num][2] = str(count)
                                            break
                                        else:
                                            print('购买失败!退款%s元!' % (pay))
                                            break
                                    else:
                                        if moneyinfo['1元'] >= outmoney - moneyinfo['2元'] * 2:
                                            print('购买成功!找您%s元!' % (outmoney))
                                            moneyinfo['1元'] -= outmoney - moneyinfo['2元'] * 2
                                            moneyinfo['2元'] = 0
                                            count = int(goodsinfo[num][2])
                                            count -= 1
                                            goodsinfo[num][2] = str(count)
                                            break
                                        else:
                                            print('购买失败!退款%s元!' % (pay))
                                            break
                                else:
                                    if moneyinfo['1元'] >= outmoney >= 1:
                                        print('购买成功!找您%s元!' % (outmoney))
                                        moneyinfo['1元'] -= 1
                                        count = int(goodsinfo[num][2])
                                        count -= 1
                                        goodsinfo[num][2] = str(count)
                                        break
                                    elif outmoney == 0:
                                        print('购买成功!找您%s元!' % (outmoney))
                                        count = int(goodsinfo[num][2])
                                        count -= 1
                                        goodsinfo[num][2] = str(count)
                                        break
                                    else:
                                        print('购买失败!退款%s元!(钱找不开!)' % (pay))
                                        break
                        else:
                            print('金额不够请继续投币')
            else:
                print('没有该编号的的商品!')

修改函数<比较简单>定义如下:

def mod():
    while 1:
        view1 = '''                    1).修改金钱
                    2).修改商品数量
                    3).退出初始化'''
        print(view1)
        choice1 = int(input('请输入选择:'))
        if choice1 == 1:
            moneyinfo['1元'] = int(input('1元钱的数量修改为:'))
            moneyinfo['2元'] = int(input('2元钱的数量修改为:'))
            moneyinfo['5元'] = int(input('5元钱的数量修改为:'))
            moneyinfo['10元'] = int(input('10元钱的数量修改为:'))
            print('修改成功!')
            break
        elif choice1 == 2:
            goodsinfo['001'][2] = input('绿茶的数量修改为:')
            goodsinfo['002'][2] = input('可乐的数量修改为:')
            goodsinfo['003'][2] = input('雪碧的数量修改为:')
            goodsinfo['004'][2] = input('红茶的数量修改为:')
            goodsinfo['005'][2] = input('咖啡的数量修改为:')
            goodsinfo['006'][2] = input('红牛的数量修改为:')
            print('修改成功!')
            break
        elif choice1 == 3:
            break
        else:
            print('请输入正确的选择!')

接下来是主要功能展示:

*********信息显示*********

**********购买及信息变化************

***********初始化设置***********

**********END***********

Python初级-基本数据类型 练习题实战 Python初级练习题实战 题目: """ 功能要求: 要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 附加:可充值、某商品移除购物车 goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "pric 阅读详情

相关推荐

C语言变量和数据类型练习题

这些练习题覆盖了C语言中常见的变量和数据类型。通过编写和运行这些示例代码,你可以加深对C语言变量和数据类型的理解,并提高你的编程技能。在C语言中,变量是用来存储和操作数据的容器。每个变量都有一个特定的数据类型,该类型决定了变量可以存储的数据的范围和操作。下面是一些C语言变量和数据类型的练习题,帮助你巩固这些概念。每个问题后面都有一个示例解答,供你参考。

Byte_O_O的博客 322

第一章 python初窥 课后练习题

1. 输入1-127的ascii码并输出对应字符 17.sort函数 18.实现一个简单的单词本 19.输入一个正整数,输出其阶乘结果 21.输入3个数字,以逗号隔开,输出其中最大的数 22.输入一个年份,输出是否为闰年 23.求两个正整数m和n的最大公约数

黎扶澈的博客 2252

Python课后习题答案

课后习题答案

python-课后练习题

python课后练习题

CNSA183_20的博客 1173

Python课后练习题

Python课后练习题

鱼cpython课后练习

好的资源肯定大家共享,最后希望大家都能的到自己想要的,学好python

25道Python练手题(附详细答案),赶紧收藏!

25道Python练手题(附详细答案),赶紧收藏!

m0_74942241的博客 1万+

FPGA实现Gardner环定时同步:Verilog代码与Testbench实战解析

本文深入解析了在FPGA上实现Gardner环定时同步的完整过程,详细阐述了其非数据辅助的定时误差检测原理。通过Verilog代码实战,展示了内插滤波器、定时误差检测器、环路滤波器和数控振荡器等核心模块的设计,并提供了完整的Testbench验证方法,帮助开发者解决数字通信系统中的时钟同步难题。

gpt4scribbler的博客 576

值得收藏的30道Python练手题(附详解)

如果不依赖 python 提供的 join 方法,还可以通过 for 循环,然后将字符串拼接,但是在用“+”连接字符串时,结果会生成新的对象,使用 join 时结果只是将原列表中的元素拼接起来,所以 join 效率比较高。例如 [1,2,0,2,1],[1,2,3,3,2,1],这样的数组都是对称数组。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。最后祝大家天天进步!

Trb201013的博客 1238

clumsy一款模拟弱网的工具

利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用程序在不良网络状况下的表现,clumsy 都能让你在不需要额外添加代码的情况下,在系统层次帮你达到想要的效果。

klb5555的专栏 2551

常用的数据结构以及常用的算法

常用的数据结构以及常用的算法 常用数据结构 数据结构是计算机存储、组织数据的方式。 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 数据结构往往同高效的检索算法和索引技术有关。 一、线性表 线性结构: 最常用、最简单的一种数据结构。 线性表: 典型的线性结构。基本特点是线性表中的 数据元素有序且有限。结构中: ① 存在一个唯一的被称为“第一个”的数据元素; ② 存在一个唯一的被称为“最后一个”的数据元素; ③ 除第一个元素外,每

qq_47605698的博客 1450

python - test3

字符串最后一个单词的长度 题目描述:计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 示例1: 输入:hello world 输出:5 2. 计算字符个数 题目描述: 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然...

weixin_34061555的博客 366

ctf——writeup

ctf线上赛——第三关地址:http://106.75.86.18:2222提示:ip spoofing——ip伪造首先访问目标地址,一个正常的网页,挺文艺的。上面有些提示。根据上面的提示,我们浏览网页。找了好久,终于找到你。这个跳转链接。(在这个页面下方)我们接着点击这个链接,就跳转到administrator.php这个页面了。看到这个登录页面,就要知道用户名,密码,可是没有怎么办。一开始也试

Child_by_dream的博客 1320

Python—组合数据类型编程练习

目标: 组合数据类型编程练习 内容: 1.仿照课本6.7的实例,对《三国演义》中出现的人物统计。 2.编写程序,根据用户输入的数字转换成相应的中文的大写数字。例如,1.23转换为“壹点贰叁”。 步骤: 1.仿照课本6.7的实例,对《三国演义》中出现的人物统计。 代码如下: 运行结果: 2.编写程序,根据用户输入的数字转换成相应的中文的大写数字。例如,1.23转换为“壹点贰叁”。 代码如下: #-*- coding: utf-8 -*- list_num =["零","壹","贡","参","肆","伍"

weixin_45652976的博客 3441

JS逆向实战:从宿务航空机票搜索到参数签名算法解析

在现代Web应用开发中,前端与后端的数据交互安全是核心技术环节。其原理通常涉及参数签名、令牌验证等机制,用于防止未授权访问和数据篡改。这些技术的核心价值在于保障接口调用的合法性与数据完整性,广泛应用于电商、金融、旅行预订等对数据安全要求较高的场景。以机票搜索为例,网站常通过动态生成的签名参数来验证请求来源。本文以宿务太平洋航空为案例,深入解析其搜索请求中关键参数(如signature)的生成逻辑,并演示如何通过浏览器开发者工具进行断点调试、变量追踪,最终使用Node.js与crypto-js库本地复现完整请

weixin_26642481的博客 752

纯JS实现SM3加密算法(兼容IE浏览器)

纯JS实现SM3加密,IE、谷歌、火狐等浏览器可以直接使用。

qianpou的博客 7354

组合数据类型练习,综合练习

1.组合数据类型练习: 分别定义字符串,列表,元组,字典,集合,并进行遍历。 1.定义字符串,并进行遍历 str="wollen" for i in str: print(i) 2.定义列表,并进行遍历 a = ['w','o','l','l','o','n'] for i in a: print(i) 3.定义元祖,并进行遍历 ...

andy20140000的博客 403

道路场景分割:车道线、可行驶区域与路沿检测

道路场景分割:车道线、可行驶区域与路沿检测​ ,人工智能,计算机视觉,大模型,AI,文章围绕道路场景分割展开,涵盖车道线、可行驶区域与路沿检测。介绍了基本概念、重要性,各部分检测的类型、方法、难点及解决思路,还涉及技术融合、数据集、评价指标、发展趋势、应用案例、代码示例、不同天气处理、实际问题与方案、实现流程、相关技术工具、教育研究应用、产业前景、伦理安全问题及学习资源等,全面阐述了道路场景分割的多方面内容,为相关学习和研究提供了丰富信息。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 22万+

Python练习:数据类型篇

Python基础练习

dragon__chen1078的博客 1790

RK3588平台MIPI DSI屏幕调试记录

本文是基于RK3588平台,MIPI屏调试总结。调试过程中遇到的问题:一开始很久没亮,测量了电源电压和波形都正常。后来换了一组板子和屏幕做对比。最后是因为屏幕的座子没焊接好,二是接MIPI屏幕的排线太长会影响数据传输。换了一根短的线之后屏幕亮起。vp2vp3。

bingdund的博客 1389

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

c语言练习题【数据类型、递归、双向链表快速排序】

请写出以下几个数据的数据类型整数 aa 的地址存放a的数组 b存放a的地址的数组b的地址c的地址指向 printf 函数的指针 d存放 d的数组a数据类型是inta数据类型是int*(指向int类型的指针)ab数据类型是int[](整型数组)ac数据类型是int*[](指针数组,每个元素是指向int的指针)c的数据类型是指针数组类型,可以表示为:int * c[ ] = {&a};b指向整型数组的指针b的数据类型是int(*)[](数组指针),b。

weixin_56261190的博客 661

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

字符串、组合数据类型练习

字符串练习: http://news.gzcc.cn/html/2017/xiaoyuanxinwen_1027/8443.html 取得校园新闻的编号 str='http://news.gzcc.cn/html/2017/xiaoyuanxinwen_1027/8443.html' print(str[-14:-5])    https://docs....

dcswo2708的博客 154

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python语言的数据类型的例题_Python_数据类型练习题

数据类型练习:"""侧重于数据类型"""01. 买苹果,计算金额并保留两位小数:price = int(input("苹果的单价:"))weight = float(input("苹果的重量:"))money = price * weightprint("买了%d斤苹果, 每斤%.2f元, 需要付%.2f元" % (weight, price, money))02. 人机猜拳小游戏:import ...

weixin_39623273的博客 1761

Python基本数据类型-课堂练习【pyhton123题库】

获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。

码字不易,大家的支持就是我坚持下去的动力 2993

Hive笔记(二)SQL练习,数据类型

文章目录SQL练习:Hive数据类型整型:TINYINT、SMALLINT、INT、BIGINT浮点:FLOAT、DOUBLE布尔类型:BOOL (False/True)字符串:STRING时间类型:复杂数据类型:Hive HQLDDLDML SQL练习: 1、count(*)、count(1) 、count(‘字段名’) 区别 2、HQL 执行优先级: from、where、 group by 、having、order by、join、select 、limit 3、where 条件里不支持不等式子查

落幕7的博客 768

Python_数据类型练习题

数据类型练习: """侧重于数据类型""" 01. 买苹果,计算金额并保留两位小数: price = int(input("苹果的单价:")) weight = float(input("苹果的重量:")) money = price * weight print("买了%d斤苹果, 每斤%.2f元, 需要付%.2f元"...

weixin_30793643的博客 1781
上一篇: 学生信息管理系统---python基础练习篇
下一篇: python中数据类型
wl_python
博客等级 码龄9年 21粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值