zoukankan      html  css  js  c++  java
  • day03

    练习题

    1.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20

    万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万

    元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万

    元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放

    奖金总数?

    # 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20
    # 万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20
    # 万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于
    # 60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,
    # 求应发放奖金总数?
    # 定义一个变量,
    I = float(input("请输入当月利润I:"))
    # 定义一个变量,保存奖金
    ret = 0
    # 判断
    if I <= 10:
        ret = I * 0.10
    elif 10 < I < 20:
        ret = (I - 10) * 0.075 + 10 * 0.10
    elif 20 <= I < 40:
        ret = (I - 20) * 0.05 + 10 * 0.075 + 10 * 0.10
    elif 40 <= I < 60:
        ret = 10 * 0.075 + 10 * 0.10 + 20 * 0.05 + (I - 40) * 0.03
    elif 60 <= I < 100:
        ret = 10 * 0.075 + 10 * 0.10 + 20 * 0.05 + 20 * 0.03 + (I - 60) * 0.015
    elif I >= 100:
        ret = 10 * 0.075 + 10 * 0.10 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (I - 100) * 0.01
    print("应发放奖金总数为%.2f" % ret)

    2.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

    例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

    for i in range(100, 1000):
        bai_wei = i // 100
        shi_wei = (i-bai_wei*100) // 10
        geg_wei = (i - bai_wei*100 - shi_wei * 10) // 1
        # print(i, bai_wei, shi_wei, geg_wei)
        if bai_wei**3 + shi_wei**3 + geg_wei**3 == i:
            print(i)

    # 注意
    # 代码从上往下执行,特别注意个位,十位和百位的顺序,否则程序将会报错

    3.

    判断101-200之间有多少个素数,并输出所有素数.

    提示:使用for...else...,如果一个数只能被1和它本身整除,那么这个数是素数

    # 判断101-200之间有多少个素数,并输出所有素数.
    # 提示:使用for...else...,如果一个数只能被1和它本身整除,那么这个数是素数
    f = 0
    for i in range(101, 201):
        for j in range(2, i):
            if i % j == 0:
                break
        else:
            f += 1
            print(i)
    print("素数个数为:%d" % f)

     4.体质指数(BMI)=体重(kg)÷身高^2(m)(公式),
    过轻:低于18.5
    正常:18.5-23.9
    过重:24-27
    肥胖:28-32
    非常肥胖, 高于32
    请根据如上,条件写出一段代码,要求实现用户输入身高和体重,输出结果相应结果,并给出相应意见(自己阐述)。

    # 体质指数(BMI)=体重(kg)÷身高^2(m)(公式),
    # 过轻:低于18.5
    # 正常:18.5-23.9
    # 过重:24-27
    # 肥胖:28-32
    # 非常肥胖, 高于32
    # 请根据如上,条件写出一段代码,要求实现用户输入身高和体重,输出结果相应结果,并给出相应意见(自己阐述)。
    # 定义一个变量,引导用户输入身高
    height = float(input("请输入您的身高:"))
    # 定义一个变量,引导用户输入体重
    ti_zhong = float(input("请输入您的体重:"))
    # 打印身高和体重
    print(height, ti_zhong)
    
    BMI = ti_zhong / (height ** 2)
    BMI = float("%.1f" % BMI)
    print(BMI)
    # 判断
    if BMI < 18.5:
        print("过轻")
    elif 18.5 <= BMI <= 23.9:
        print("正常")
    elif 24 <= BMI <= 27:
        print("过重")
    elif 28 <= BMI <= 32:
        print("非常肥胖")
    elif BMI > 32:
        print("过度肥胖")

     5.要求使用for 循环和continue 打印1-100中的奇数。

    f = 0
    for i in range(1, 101):
        if i % 2 == 0:
            continue
        else:
            f += 1
        print(i)
    print("1-100中的奇数有:%d个" % f)

    6.完成可以无限次玩的剪刀石头布,每局并且输入quit或者exit时退出游戏

    # 完成可以无限次玩的剪刀石头布,每局并且输入quit或者exit时退出游戏
    # 玩家VS电脑
    # 假设:剪刀,石头,布分别为(0,1,2)
    #
    # 玩家为剪刀时,电脑出布,当玩家出石头时,电脑出剪刀,当玩家出布时,电脑出石头
    # 平局
    # 玩家和电脑出拳一样时为平局
    # 输了
    # 否则玩家输了
    # 定义变量,引导用户输入拳法
    import random
    while True:
        # 玩家输入
        p = int(input("请出拳(0.剪刀,1.石头,2.布):"))
        # 判断是否需要退出
        if p == "exit" or p == "quit":
            print("游戏结束!")
            break
        c = random.randint(0,3)
        if ((p == 0 and c == 2) or (p == 1 and c == 0) or (p == 2 and c == 1)):
            print("你赢了,你出的是%d===========电脑出的是%d" % (p, c))
        elif p == c:
            print("平局,你们出的都是%d" % p)
        else:
            print("你输了,你出的是%d===========电脑出的是%d" % (p, c))

    7.使用for循环打印如下图形:

    * * * * *
    * * * *
    * * *
    * *
    *
    for i in range(1, 6):
        for j in range(1, 7 - i):
            print("* ", end="")
        print()

    或者使用while循环:

    i = 1
    # 控制外层循环
    while i <= 5:
        # 每行打印的星星的数量
        j = 6 - i
        while j >= 1:
            print("*", end=" ")
            j -= 1
        print()
        i += 1

    8.使用while循环输出如下图形:

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

    使用for循环:

    for i in range(1, 10):
        if i <= 5:
            for j in range(1, i + 1):
                print("*", end=" ")
            print()
        else:
            for j in range(1, 11 - i):
                print("*", end=" ")
            print()

    使用while循环;

    i = 1
    while i <= 9:
        # 前五行
        if i <= 5:
            j = 1
            while j <= i:
                print("*", end=" ")
                j += 1
            print()  
        # 后四行
        else:
            j = 10 - i
            while j >= 1:
                print("*", end=" ")
                j -= 1
            print()
        i += 1

    9.使用while,完成以下图形的输出:

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

    使用for循环:

    for i in range(1, 10):
        if i <= 5:
            k = 5 - i
            x = 2 * i - 1
            for k in range(1, 6 - i):
                print(" ", end=" ")
            for x in range(1, 2 * i):
                print("*", end=" ")
            print()
        else:
            # 每行打印的空格数
            k = i - 5
            # 每行打印的星星数
            x = 2 * (10 - i) - 1
            # 打印空格
            for k in range(1, i - 4):
                print(" ", end=" ")
            # 打印星星
            for x in range(1, 2 * (10 - i)):
                print("*", end=" ")
            # 打印完当前行,换行
            print()

    使用while循环:

    i = 1
    while i <= 9:
        # 前五行
        if i <= 5:
            # 每行打印空格数
            k = 5 - i
            # 每行打印的星星数
            x = 2 * i - 1
            # 打印空格
            while k >= 1:
                print(" ", end=" ")
                k -= 1
            # 打印星星
            while x >= 1:
                print("*", end=" ")
                x -= 1
            # 打印完当前行,换行
            print()
            i += 1
        # 后四行
        else:
            # 每行打印的空格数
            k = i - 5
            # 每行打印的星星数
            x = 2 * (10 - i) - 1
            # 打印空格
            while k >= 1:
                print(" ", end=" ")
                k -= 1
            # 打印星星
            while x >= 1:
                print("*", end=" ")
                x -= 1
            # 打印完当前行,换行
            print()
            i += 1

    10.设计“过7游戏”的程序, 打印出1-100之间除了含7和7的倍数之外的所有数字。

    for i in range(1, 101):
        # 能被7整除:i % 7 == 0
        # 个位为7:i % 10 == 7
        # 十位为7:i // 10 == 7
        if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
            continue
        print(i, end=', ')

    11.现有一字符串a = “abcdefg”,将字符串中的元素逐个输出,并且在输出的时候如果字母是b则显示B

    a = "abcdefg"
    for c in a:
        if c == "b":
            print("B")
            continue
        print(c)

    12.公交车:我做607上下班,每天时间比较紧,公交车大概50分钟,单程1元,如果打车的话单程30块,

    大概25分钟,如果先骑车然后做地铁的话会大改38分钟,4元钱, 根据条件编写程序程序,小华每天8

    点30上班,身上有60元钱,问那个线路比较划算?小华7点50出门?如果是7点45出门呢?

    money = int(input("请输入钱数:"))
    time_z = int(input("请输入上班时间:"))
    if time_z >= 50:
        if money > 30:
            print("可以打车")
        if money > 4:
            print("可以做地铁")
        if money > 1:
            print("坐公交最省钱")
    
    elif 50 >= time_z > 38:
        if money > 30:
            print("可以打车")
        if money > 4:
            print("做地铁最省钱")
    
    
    elif 38 >= time_z > 25:
        if money > 30:
            print("打车还有救")
    
    else:
        print("今天会迟到")
  • 相关阅读:
    [LeetCode] 23. Merge k Sorted Lists ☆☆
    [LeetCode] 22. Generate Parentheses ☆☆
    [LeetCode] 21. Merge Two Sorted Lists ☆
    [LeetCode] 20. Valid Parentheses ☆
    [LeetCode] 19. Remove Nth Node From End of List ☆
    [LeetCode] 18. 4Sum ☆☆
    [LeetCode] 17. Letter Combinations of a Phone Number ☆☆
    [LeetCode] 16. 3Sum Closest ☆☆☆
    [LeetCode] 15. 3Sum ☆☆
    [LeetCode] 14. Longest Common Prefix ☆
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12689056.html
Copyright © 2011-2022 走看看