Erlo

python习题20190130

2019-01-30 18:01:59 发布   737 浏览  
页面报错/反馈
收藏 点赞

#encoding=utf-8

'''
一家商场在降价促销。如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣,如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣(10%或20%)和最终价格
'''

def print_zekou():
    aount = int(input("请输入你购买的金额:"))
    if aount < 50:
        print("不好意思你购买的金额没有折扣,需要支付的金额为:",aount)

    if aount >= 50 and aount <= 100:
        print("你购买的金额为 %d,折扣为:%d,需要支付的金额为%0.2f"%(aount,9,aount*0.9))
    if aount > 100:
        print("你购买的金额为 %d,折扣为:%d,需要支付的金额为%0.2f"%(aount,8,aount*0.8))

'''
10、求1 + 2 + 3 +….+100
'''
def print_num_yibai():
    num = 0
    for i in range(1,101):
        num += i
    print("1 + 2 + 3 +….+100=",num)

'''
判断一个数n能否同时被3和5整除
'''
def print_n_sanhuowu():
    num = int(input())
    if num ==0:
        return 0
    if num % 3==0 and num %5 ==0:
        print("能被3和5整除")
    else:
        return 0

'''
一个足球队在寻找年龄在10到12岁的小女孩(包括10岁和12岁)加入。编写一个程序,询问用户的性别(m表示男性, f表示女性)和年龄,然后显示一条消息指出这个人是否可以加入球队,询问10次后,输出满足条件的总人数
'''
def print_f():
    count = 0
    for i in range(10):
        num = input("m表示为男性,f表示为女性:")
        if num == 'f':
            sunm = int(input("请输入年龄:"))
            if sunm >=10 and sunm <= 12:
                print("恭喜你可以加入球队!!")
                count += 1

        else:
            print("不好意思,我们不需要男生!!")
    print("加入球队的总人数为:",count)

'''
长途旅行中,刚到一个加油站,距下一个加油站还有200km,而且以后每个加油站之间距离都是200km。编写一个程序确定是不是需要在这里加油,还是可以等到接下来的第几个加油站再加油
'''
def print_km():
    youxiang = int(input("你的油箱多大?,单位升:"))
    shxia = float(input("目前你的油箱还有多少油,按百分比,比如一半就是0.5:"))
    lucheng = int(input("你的车每升油能走多远:"))
    syou = (youxiang*shxia-5)*lucheng
    if syou < 200:
        print("在当前的加油站要加油")
    else:
        print("第%d个加油站加油"%(syou/200))

#20190118
'''
现有面包、热狗、番茄酱、芥末酱以及洋葱,数字显示有多少种订购组合,其中面包必订,0不订,1订,比如10000,表示只订购面包
'''
def print_ding():
    count = 0
    for a in '1':
        for b in '01':
            for c in '01':    
                for d in '01':
                    print(a+b+c+d)
                    count += 1
    print("有%d种组合"%count)
    
'''
基于上题:给出每种食物的卡路里(自定义),再计算出每种组合总共的卡路里
'''
def print_ding_kaluli():
    count = 0
    for a in '1':
        for b in '01':
            for c in '01':    
                for d in '01':
                    print(a+b+c+d,"不同组合的卡路里为",int(a)*100+int(b)*200+int(c)*300+int(d)*400)
                    count += 1

'''
输入5个名字,排序后输出
'''
def print_fivename_sorted():
    num = input("请输入5个名字,用英文都好隔开:")
    num_list = num.split(',')
    print(sorted(num_list))

'''
实现一个简单的单词本
- 功能:
- 可以添加单词和词义,当所添加的单词已存在,让用户知道;
- 可以查找单词,当查找的单词不存在时,让用户知道;
- 可以删除单词,当删除的单词不存在时,让用户知道;
- 以上功能可以无限制操作,直到用户输入bye退出程序。

'''
def print_smiple_danciben():
    num_dict = {}
    while True:
        num = input("请输入你要进行的操作(add:添加单词,select:查找单词,del:删除单词,bye:退出程序):")
        if num =='bye':
            break
        if num == 'add':
            num_add = input("输入你要添加的单词:")
            if num_add in num_dict.keys():
                print("你输入的单词已存在!!")
                continue
            else:
                num_value = input("输入你添加的单词的词义:")
            num_dict[num_add] = num_value
            
        if num == 'select':
            num_select = input("输入你要查找的单词:")
            if num_select not in num_dict.keys():
                print("你要查询的单词不存在!!")
            else:
                print(num_select," 单词词义为:",num_dict[num_select])
        if num == 'del':
            num_del = input("输入你要删除的单词:")
if num_del not in num_dict.keys(): print("你要删除的单词不存在!!") else: del num_dict[num_del] print("已删除成功") if num == 'bye': print("程序已结束,感谢你的使用") break if num !='add' and num !='del' and num != 'select' and num != 'bye': print("输入有误,请输入正确的操作符!!") continue ''' 输入一个正整数,输出其阶乘结果 ''' def print_jiecheng(n): num = 1 if not isinstance(n,int): return "输入的不是数值!!" if n == 0: return '1' for i in range(1,n+1): num *= i print(n,"的阶乘为:",num) ''' 输入3个数字,以逗号隔开,输出其中最大的数 ''' def print_three_num(): num = input("请输入三个数值并用英文逗号隔开:") num_list = num.split(",") num_son = int(num_list[0]) for i in num_list: if num_son < int(i): num_son = int(i) print("最大的数为:",num_son) ''' 输入一个年份,输出是否为闰年 是闰年的条件: 能被4整数但不能被100整除,或者能被400整除的年份都是闰年 ''' def print_runnian(): num_year = int(input("请输入你要判断的年份:")) if (num_year %4 ==0 and num_year %100 !=0) or num_year%400 == 0: print(num_year,"是闰年!") else: print(num_year,"不是闰年!") #20190121 ''' 求两个正整数m和n的最大公约数 ''' def print_max(n,m): num_list=[] if n%m == 0: return m if m%n == 0: return n for i in range(1,n+1): if n%i == 0 and m%i ==0: num_list.append(i) for i in range(1,m+1): if n%i == 0 and m%i ==0: num_list.append(i) return max(num_list) ''' 习题1:设定一个用户名和密码,用户输入正确的用户名和密码,则显示登录成功,否则提示登录失败,用户最多失败3次,否则退出程序。 提示:使用while或者for来限定重试的次数,使用input获取用户输入使用 ==判断用户的用户名和密码。 ''' def print_username_passs(): num_one = 0 num_two = 3 while num_one < 3: num_username = input("请输入用户名:") num_passwed = input("请输入用户密码:") if num_username == 'testname' and num_passwed == 'testpass': return "登录成功" else: print("登录失败!!") num_two -= 1 print("剩下%d次机会"%num_two) num_one += 1 print("三次机会已经全部用完!!") return '' ''' 习题2:自己实现一个函数,在一句话中查找某个单词的算法,存在返回索引号,否则返回False 提示:使用句子中的坐标遍历句子的每一个位置,使用查找单词的长度结合使用切片来查找单词。例如:s[i:i+len(单词)] ''' def print_find_word(word,num): for i in range(len(word)): #print(i) #print(word[i:len(num)+i]) if len(word[i:]) <= len(num): print("没有找到!!") return 0 elif word[i:len(num)+i] == num: #print(word[i:len(num)-1]) print("索引:",i+1) return 1 ''' 习题3:随机生成一个整数,1-100之间你最多猜5次,如果猜大了,提示大了小了,提示小了,猜对了,提示猜中。5次都没猜中,就猜没猜中。 ''' import random def print_random_cai(): try: num_random = random.randint(1,100) print(num_random ) for i in range(5): num_one = int(input("请输入你要猜的数值:")) if num_one > num_random: print("猜大了!!") continue if num_one == num_random: print("猜中了!!") return 1 if num_one < num_random: print("猜小了!!") continue print("没猜中!!") except Exception as e: print(e) ''' 习题4:使用while,计算随机数之和,超过100的时候,停止程序。随机数1-20的范围产生,要求记录一下产生的随机数,以及最后的和,以及随机数的个数。 ''' def print_random_yibai(): num_one = 0 num_list = [] while num_one < 100: num_random = random.randint(1,20) num_list.append(num_random) num_one += num_random print("产生的随机数为:",num_list,"最后的和为:",num_one,"随机数的个数为:",len(num_list)) ''' 习题5:遍历字符串、列表,分别基于位置和和基于字符遍历 ''' def print_str_list(s): for i in s: print(i) for i in range(len(s)): print(s[i]) #20190122 ''' 习题6:遍历一个列表中的嵌套列表和元组的所有元素,将1-12的数字进行输出![[[1,2,3],4,5],7,8,(9,10,(11,12))] ''' def print_list_tuple(): num_tuple = [[[1,2,3],4,5],7,8,(9,10,(11,12))] for i in num_tuple: if isinstance(i,(list,tuple)): for j in i: if isinstance(j,(list,tuple)): for c in j: print(c) else: print(j) else: print(i) ''' 判断一个数是否是素数 ''' def print_sushu(n): if n == 1 or n == 2: print("是素数") return 0 for i in range(2,n): if n%i == 0: print("不是素数") return 1 else: print("是素数") return 0 ''' 求100以内的素数和 ''' def print_yibai_sushu(): num_one = 0 for i in range(3,101): num_two = print_sushu(i) print(i) if num_two == 0: num_one += i return num_one ''' 使用 for 的方式,求一下100以内奇数之和 ''' def print_for_jishu(): num_one = 0 for i in range(1,101,2): num_one += i print(num_one) ''' 用户输入多个数字,当输入偶数的时候求和,输入奇数,不求和,输入.(一个点)的时候结束求和,打印求和结果 ''' def print_oushu_qiuhe(): try: num_two = 0 while True: num_one = input("输入数值,偶数求和,奇数不求和,"."结束求和:") if num_one == '.': print(num_two) break elif int(num_one)%2 == 0: num_two += int(num_one) except Exception as e: print(e) ''' 嵌套循环输出10-50中个位带有1-5的所有数字: 方法1:数字和10取余,判断是否大于0并且小于等于5 方法2:将数字转换为str,取各位的字符判断字符是否在1-5内。 方法3:拼接数字 ''' def print_shidegewei(): try: num_list = [] for i in range(10,51): if i%10 >0 and i%10 <= 5: print(i) num_list.append(i) return num_list except Exception as e: print(e) ''' 输入3个数字,达到3个数字求和,结束程序 ''' def print_three_num(): try: num_one = 0 for i in range(3): num = int(input("请输入数值")) num_one += num return num_one except Excepyion as e: print(e) ''' 用户输入不同的数据,当输入的数据达到3个数字的时候,求和结束程序。(数字可以是整数) 提示:判断是否整数的方法,isdigit() 遍历所有的输入数据,判断是否在0-9的字符串范围内 ''' def print_three_number(): try: counts = 0 num_one = 0 while True: num = input("请输入:") if num.isdigit(): counts += 1 num_one += int(num) if counts == 3: return num_one except Exception as e: print(e) ''' 用嵌套列表的方式,遍历输出一个矩阵 ''' def print_qiantao(): num_list = [[1,2,3],[4,5,6],[7,8,9]] for i in num_list: for j in i: print(j) ''' ''' def print_list_num(): try: num_list = [[1,2,3],[4,5,6],[7,8,9]] num_one = 0 num_two = 0 for i in range(len(num_list)): for j in range(len(num_list[i])): if i == j: num_one += num_list[i][j] num = len(num_list[i])-1-i num_two += num_list[i][num] print("正对角之和:",num_one,"反对角之和:",num_two,) except Exception as e: print(e) '''
登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认