Saya sudah mencoba menjalankan dua skrip, satu dengan modul yang diimpor dan satu tanpa.

Saya mengklik dua kali yang dengan modul dan sebuah jendela muncul dan menghilang dengan cepat, lalu saya mencoba yang lain tanpa dan itu berhasil.

Dapatkah seseorang membantu saya mencari tahu? Terima kasih.

Presisi: Saya sudah mencoba skrip lain dengan modul lain tetapi tidak berhasil, kedua skrip tidak memiliki kesalahan. Saya menggunakan windows 10 dan kedua skrip akan mencetak faktor prima dari angka yang diberikan, satu dengan modul matematika dan yang lainnya tanpa. Saya masih dapat menjalankan yang dengan modul dengan IDE saya, tetapi saya lebih suka untuk tidak membuka IDE saya untuk menjalankan skrip dengan modul.

Jika Anda menginginkan skrip:

# The one without the module ik it's not optimized
num = 56475871
nvNum = 2
nbsPmrs = []
res = []

for nvNum in range(num):
    if not nvNum % 2 == 0 and not nvNum % 3 == 0 and not nvNum % 5 == 0 and not nvNum == 1 or nvNum == 2 or nvNum == 3 or nvNum == 5:
        nbsPmrs.append(nvNum)

for a in range(1, len(nbsPmrs), 1):
    if num % nbsPmrs[a] == 0:
        res.append(nbsPmrs[a])

print(res)
# -----------------------------------------------------
# The one with the module

from math import *

num = 56475871
res = []
t = int(sqrt(num))
for i in range(t):
    while num % 2 == 0:
        num //= 2
        res.append(2)
        if num % 2 != 0:
            break
for a in range(3, t, 1):
    if num % a == 0:
        num //= a
        res.append(a)

res.append(num)
print(res)

0
JD470 20 November 2020, 18:39

1 menjawab

Jawaban Terbaik

Seperti yang diharapkan, ini adalah kasus pencetakan hasil dan penutupan jendela saat skrip selesai; tidak ada hubungannya dengan impor

Agar jendela tetap terbuka, Anda cukup menambahkan baris berikut ke akhir skrip

input('Press Enter to quit')

Anda juga kehilangan pernyataan cetak akhir Anda pada skrip kedua; maka tidak ada output

Saya membuat ini berfungsi seperti yang diharapkan:

from math import *

num = 56475871
res = []
t = int(sqrt(num))
for i in range(t):
    while num % 2 == 0:
        num //= 2
        res.append(2)
        if num % 2 != 0:
            break
for a in range(3, t, 1):
    if num % a == 0:
        num //= a
        res.append(a)

res.append(num)
print(res)
input('Press Enter to quit')
0
LouieC 20 November 2020, 16:30