Loading...
KaloyanStoyanovvv avatar KaloyanStoyanovvv 77 Точки

Задача SquareNumbers от Lists Lab Python

Здравейте,

с този код https://pastebin.com/s05NtQvq в Джъдж ми дава 87/100, като гърми на тест с инпут -1 2 -5 100 121 81 49 36 25 24 169 -169 и казва: can't convert complex to int. Може ли някой да сподели мнение как мога да го оправя?

Това е условието на задачата:

Read a list of integers and extract all square numbers from it and print them in descending order. A square number is an integer which is the square of any integer. For example, 1, 4, 9, 16 are square numbers.

  • To find out whether an integer is “square number”, check whether its square root is integer number (has no fractional part):
    • if (√num == (int)√num) …
  • To order the results list in descending order use sorting with reverse
0
Programming Fundamentals
The_assassin avatar The_assassin 158 Точки

Опитай така:
int(pow(item, 0.5)) ** 2 == item: »» isinstance(item, int) and pow(item, 0.5) ** 2 == item:

0
KaloyanStoyanovvv avatar KaloyanStoyanovvv 77 Точки

Така чупи други два теста с цели числа, но оправя този който съм посочил с отрицателните числа и дава 75/100.

0
30/11/2018 09:09:44
The_assassin avatar The_assassin 158 Точки

Опитай тогава, като към твоя вариант, просто не включваш отрицателните в проверката if item > -1 ....

0
KaloyanStoyanovvv avatar KaloyanStoyanovvv 77 Точки

Стана с твоята подсказка, но няма кой да мисли вече..

if item > -1 and int(pow(item, 0.5)) ** 2 == item:

Много благодаря.

 

1
30/11/2018 09:25:51
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.