Удалить десятичные дроби из одного значения в списке - PullRequest
0 голосов
/ 10 апреля 2020

Я новичок в программировании, и у меня есть это задание с рецептом. Предполагается, что рецепт изменяет ингредиенты в зависимости от количества людей.

recipeList = [["Egg",3,"st"],       #list of the ingredients  
             ["Sugar",3,"dl"],      #with 4 people as base
             ["Vanilla sugar",2,"tsp"],
             ["Baking powder",2,"tsp"],
             ["Flour",3,"dl"],
             ["Butter",75,"g"],
             ["Water",1,"dl"]]
print("How many people are going to eat the cake?")
x = int(input())#input for user

print("Recipe for a sponge cake for", x, "people")
print("|   Ingredients   |  Amount")                    #a list for ingredients and amount
for item in recipeList:
    print("|",item[0]," "*(13-len(item[0])),"|",        #visual design for the list
          (item[1]*x/4),                                #amount * x/4, as recipe is based on 4 people 
          item[2]," "*(3-len(item[2])-len(str(item[1]))), 
          )

Мой вопрос, с этим кодом и типом списка, могу ли я напечатать количество яиц в виде целого числа ? Я не хочу десятичных знаков на отпечатке яиц. Задание в порядке с 0 как результат для яйца

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Вы можете поместить одно условие if во время печати. Есть еще одна вещь, которую вы можете улучшить в этом коде. Вы можете использовать str.format (), чтобы напечатать ваш текст более читабельно. используйте спецификаторы выравнивания для изменения выравнивания.

Вот ваш улучшенный код.

recipeList = [["Egg",3,"st"],       #list of the ingredients  
             ["Sugar",3,"dl"],      #with 4 people as base
             ["Vanilla sugar",2,"tsp"],
             ["Baking powder",2,"tsp"],
             ["Flour",3,"dl"],
             ["Butter",75,"g"],
             ["Water",1,"dl"]]
print("How many people are going to eat the cake?")
x = int(input())#input for user

print("Recipe for a sponge cake for", x, "people \n")

print("| {:<13} | {:<4}".format("Ingredients","Amount"))                    #a list for ingredients and amount

for item in recipeList:
    if item[0] == 'Egg':
        print('| {:<13} | {:>3} {:<2}'.format(item[0], int(item[1]*x/4), item[2]))
    else:
        print('| {:<13} | {:>4} {:<2}'.format(item[0], item[1]*x/4, item[2]))

Вот выходные данные для образца прогона

How many people are going to eat the cake?
4
Recipe for a sponge cake for 4 people 

| Ingredients   | Amount
| Egg           |   3 st
| Sugar         |  3.0 dl
| Vanilla sugar |  2.0 tsp
| Baking powder |  2.0 tsp
| Flour         |  3.0 dl
| Butter        | 75.0 g 
| Water         |  1.0 dl
0 голосов
/ 10 апреля 2020

Просто сделайте это:

recipeList = [["Egg", 3, "st"],  # list of the ingredients
                  ["Sugar", 3, "dl"],  # with 4 people as base
                  ["Vanilla sugar", 2, "tsp"],
                  ["Baking powder", 2, "tsp"],
                  ["Flour", 3, "dl"],
                  ["Butter", 75, "g"],
                  ["Water", 1, "dl"]]
    print("How many people are going to eat the cake?")
    x = int(input())  # input for user

    print("Recipe for a sponge cake for", x, "people")
    print("|   Ingredients   |  Amount")  # a list for ingredients and amount
    for item in recipeList:
        print("|", item[0], " " * (13 - len(item[0])), "|",  # visual design for the list
              int(item[1] * x / 4) if item[0] == 'Egg' else (item[1] * x / 4),  # amount * x/4, as recipe is based on 4 people
              item[2], " " * (3 - len(item[2]) - len(str(item[1]))),
              )

Условная печать на яйце, если элемент - яйцо, просто int (item [1] * x / 4)

...