简体   繁体   中英

I need to make a python project but I know C# and don't know how to convert it

using System;

namespace Problem2375
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            string setir = Console.ReadLine();
            var massiv = setir.Split(' ');
            int n = int.Parse(massiv[0]);
            int qiymet = int.Parse(massiv[1]);
            int area = 0;
            int bedroom = 0;
            int balcony = 0;
            for (int i = 0; i < n; i++)
            {
                setir = Console.ReadLine();
                massiv = setir.Split(' ');
                area = area + int.Parse(massiv[0]);
                if (massiv[1] == "bedroom") bedroom = bedroom + int.Parse(massiv[0]);
                if (massiv[1] == "balcony") balcony = balcony + int.Parse(massiv[0]);
            }
            Console.WriteLine(area);
            Console.WriteLine(bedroom);
            double yekun = qiymet*(area - balcony/2.0);
            Console.WriteLine(yekun);
        }
    }
}

I know little to nothing when it comes to Python. I tried doing something but failed really badly.

Try something like this:

  setir = input()
  massiv = setir.split()
  n = int(massiv[0])
  qiymet = int(massiv[1])
  area = 0
  bedroom = 0
  balcony = 0
  for i in range(n):
    setir = input()
    massiv = setir.split();
    area = area + int(massiv[0])
    if (massiv[1] == "bedroom"):
       bedroom = bedroom + int(massiv[0])
    if (massiv[1] == "balcony"):
       balcony = balcony + int(massiv[0])
  }
  print(area);
  print(bedroom);
  yekun = qiymet * (area - balcony / 2.0)
  print(yekun);
}
def main():
    setir = input()
    massiv = setir.split(' ')
    n = int(massiv[0])
    qiymet = int(massiv[1])
    area = bedroom = balcony = 0
    for i in range(n):
        setir = input()
        massiv = setir.split(' ')
        area += int(massiv[0])
        if massiv[1] == "bedroom":
            bedroom += int(massiv[0])
        elif massiv[1] == "balcony":
            # The original code in C# has an if, but is better to use an elif(equivalent to 'else' in C#), because
            # if any, massiv[1] could be "bedroom" or "balcony", but not both at the same time.
            # In your original code, both if conditions are being evaluated unnecessarily, since only one of the two,
            # if any, can be evaluated to True, at the same time, during an iteration of the for loop.
            balcony += int(massiv[0])

    print(area)
    print(bedroom)
    yekun = qiymet * (area - balcony/2.0)
    print(yekun)


if __name__ == "__main__":
    main()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM