""" Name:Test3 第一题.py Author: wanglang Connect: [email protected] 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: [email protected] 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: [email protected] 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: [email protected] 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: [email protected] 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')
扫描二维码关注公众号,回复:
1661365 查看本文章
************************************************************************
自动售货系统!!!!
大体代码如下:
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***********