Member 14874254 Ответов: 2

Как мне написать эту строку с Python на java


- Привет! Я хотел бы спросить, Как написать эту строку for j in [c for c in coinValueList if c <= центы]: с Python на Java
я новичок и хочу разобраться в этом на java, так как не понимаю, как это работает на python. Заранее спасибо!
весь код на Python:
def dpMakeChange(coinValueList,change,minCoins,coinsUsed):
  for cents in range(change+1):
     coinCount = cents
     newCoin = 1
     for j in [c for c in coinValueList if c <= cents]:
           if minCoins[cents-j] + 1 < coinCount:
              coinCount = minCoins[cents-j]+1
              newCoin = j
     minCoins[cents] = coinCount
     coinsUsed[cents] = newCoin
  return minCoins[change]

def printCoins(coinsUsed,change):
  coin = change
  while coin > 0:
     thisCoin = coinsUsed[coin]
     print(thisCoin)
     coin = coin - thisCoin

def main():
   amnt = 63
   clist = [1,5,10,21,25]
   coinsUsed = [0]*(amnt+1)
   coinCount = [0]*(amnt+1)

   print("Making change for",amnt,"requires")
   print(dpMakeChange(clist,amnt,coinCount,coinsUsed),"coins")
   print("They are:")
   printCoins(coinsUsed,amnt)
   print("The used list is as follows:")
   print(coinsUsed)

main()


Что я уже пробовал:

Я уже пробовал это сделать
for (int j : coinValueList) {
              if (j <= 1) {

но видимо это неправильно(

2 Ответов

Рейтинг:
0

Patrice T

Цитата:
я новичок и хочу разобраться в этом на java, так как не понимаю, как это работает на python.

Существует инструмент, который может помочь вам понять код, это отладчик.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

27.3. ПДБ — отладчика Python — питон 3.6.1 документации[^]
Отладка в Python | Python покоряет Вселенную[^]
pdb – интерактивный отладчик - Python модуль недели[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Рейтинг:
0

Richard MacCutchan

Сначала вам понадобится новый список, чтобы захватить все значения coinValueList Как только у вас это есть, вы можете перебирать эти значения . ..

List<Integer> newlist = new ArrayList<Integer>();
for (int c : coinValueList)
{
    if (c <= cents)
        newlist.add(c)
}
for (int j : newlist)
{
    // loop over the selected values
}


[редактировать]
Если вы знаете Java, то изучение Python не составит труда. Видеть Учебник по Python — документация по Python 3.7.8rc1[^].
[/редактировать]