Есть ли способ запустить программу Python на Android? [Дубликат]

Вам нужно проверить все числа от 2 до n-1 (до sqrt (n) на самом деле, но нормально, пусть это будет n). Если n делится на любое из чисел, оно не является простым. Если число является простым, распечатайте его.

for num in range(2,101):
    prime = True
    for i in range(2,num):
        if (num%i==0):
            prime = False
    if prime:
       print num

Вы можете написать то же намного короче и больше pythonic:

for num in range(2,101):
    if all(num%i!=0 for i in range(2,num)):
       print num

Как я уже сказал, было бы лучше проверить делители не от 2 до n -1, но от 2 до sqrt (n):

import math
for num in range(2,101):
    if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
       print num

Для небольших чисел, таких как 101, это не имеет значения, но для 10 ** 8 разница будет действительно большой.

Вы можете улучшить его немного больше, увеличивая диапазон, который вы проверяете на 2, и тем самым проверяете нечетные числа. Так же:

import math
print 2
for num in range(3,101,2):
    if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
       print num

Отредактировано:

Как и в первом цикле, выбраны нечетные числа, во втором цикле нет необходимости проверять четными числами, поэтому 'i 'может начинаться с 3 и пропускаться на 2.

import math
print 2
for num in range(3,101,2):
    if all(num%i!=0 for i in range(3,int(math.sqrt(num))+1, 2)):
        print num
53
задан mid_kid 21 June 2012 в 20:40
поделиться

6 ответов

Jython не компилируется в «чистый java», он компилируется в java bytecode - то есть в *.class файлы. Для разработки для Android еще один компилятор java-байт-кода для байт-кода Dalvik. Это означает, что да, Jython может позволить вам использовать Python для разработки Android, при условии, что вы получите его, чтобы хорошо играть с Android SDK (я лично этого не пробовал, поэтому не знаю насколько это тяжело) - вы do должны убедиться, что вы не зависите от каких-либо Java-API, которые Android не предоставляет, и может иметь некоторые из файлы API Android .class, когда вы запускаете jython. Помимо этих ошибок, ваша основная идея должна работать - Jython действительно позволяет писать код на Python, который взаимодействует с чем-либо еще, что работает на JVM.

39
ответ дан lvc 26 August 2018 в 04:57
поделиться

Это невозможно. Вы не можете использовать jython с Android, потому что DVM не понимает этого. DVM не является JVM.

-3
ответ дан Burhan Khalid 26 August 2018 в 04:57
поделиться

Сценарий Scripting Layer для Android (SL4A) предоставляет языки программирования на Android, позволяя вам редактировать и выполнять скрипты и интерактивные интерпретаторы непосредственно на устройстве Android.

1
ответ дан Freeman 26 August 2018 в 04:57
поделиться

Пока он компилируется в чистую java (с некоторыми ограничениями, поскольку некоторые API-интерфейсы недоступны), но я сомневаюсь, что python будет очень полезен в разработке специфичных для Android элементов, таких как действия и код манипулирования пользовательским интерфейсом.

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

3
ответ дан Konstantin Pribluda 26 August 2018 в 04:57
поделиться

Да и нет. С jython вы можете использовать классы java для компиляции для JVM. Но Android использует DVM (Dalvik Virtual Machine), а скомпилированный код отличается. Вы должны использовать инструменты для преобразования из JVM-кода в DVM.

1
ответ дан user 26 August 2018 в 04:57
поделиться

печально Нет.

Мобильные телефоны имеют только Java ME (Micro Edition), но Jython требует Java SE (стандартная версия). Для JETON-порта нет ME, и нет достаточного интереса, чтобы сделать это стоящим.

-3
ответ дан user3224611 26 August 2018 в 04:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: