Sebelum mulai menceritakan masalah saya, maaf untuk tata bahasa dan bahasa Inggris saya tidak terlalu baik. Saya seorang pelajar Python. Hari ini saya sedang mengerjakan sebuah proyek tetapi saya mengalami masalah. Saya mencoba membuat lingkaran.

coordinates = [[1,2],[2,3],[3,5],[5,6],[7,7`],[1,2]]

Ini daftar saya, saya mencoba membuat loop. Loop itu akan mengurangi setiap nilai pertama dari satu sama lain dan setiap detik ke detik kemudian dicetak. Biarkan saya menjelaskan masalah saya lebih sederhana. [[x,y][x1,y1][x2,y2] Saya perlu mengurangi x1-x lalu mencetak hasilnya setelah x2-x1 ini lalu mencetak hasilnya tetapi pada saat yang sama y1-y mencetak lalu mencetak sehingga keluaran konsol akan terlihat seperti ini;

1,1
1,2
2,1...

Metode yang sudah saya coba

while True:
for x,y in coordinates:
    x = x - y
    print(x)

Ini tidak berhasil karena mengurangi nilai x ke nilai y. Aku tahu itu terlalu salah.

Saya telah melakukan riset di internet tetapi saya tidak begitu memahami subjek ini. Saya mencari bantuan. Terimakasih semuanya.

0
Mehmet KURTOW 24 Desember 2020, 00:13

2 jawaban

Jawaban Terbaik

Implementasi yang sederhana dan naif

def pr(arr):
    i = 1
    while i < len(arr):
        (x,y) = arr[i]
        (a,b) = arr[i-1]
        print(x-a, y-b)
        i += 1


if __name__ == '__main__':
    coordinates = [[1,2],[2,3],[3,5],[5,6],[7,7],[1,2]]
    pr(coordinates)

O/P:

1 1
1 2
2 1
2 1
-6 -5
1
Mehmet KURTOW 24 Desember 2020, 20:21

Anda perlu mengulangi list menggunakan fungsi range sehingga Anda bisa mendapatkan yang sekarang dan yang berikutnya bersama-sama. Jadi Anda bisa melakukan pengurangan dalam lingkaran.

coordinates = [[1,2],[2,3],[3,5],[5,6],[7,7],[1,2]]
for i in range(len(coordinates) - 1):
    print(coordinates[i+1][0] - coordinates[i][0], coordinates[i+1][1] - coordinates[i][1])
0
Praveen 24 Desember 2020, 05:29