Python menetapkan tanda angka ke variabel

Saya punya variabel bertipe int, itu Python, jadi bisa positif dan negatif. Sekarang, saya ingin membuat variabel lain memiliki tanda yang sama dengan variabel1 pertama. Sangat mudah untuk melakukan ini dengan menggunakan pernyataan if dan kemudian menetapkan -1 atau +1 ke suatu variabel dan mengalikan setiap variabel yang saya ingin tandai dengan -1 atau +1. Tapi kemudian saya berpikir mungkin ada cara lain untuk melakukan ini (misalnya fungsi bawaan). Apakah ada sesuatu seperti "tanda = getsignbit(nilai)"?

sunting: Terpecahkan! math.copysign berhasil, cmp(x,0) juga berfungsi, tetapi saya tidak hanya ingin -1, 0, atau 1, tetapi juga mengubah angka 5 menjadi -5.


person user2746752    schedule 01.11.2013    source sumber
comment
tanda = lambda x: math.copysign(1, x) terlihat bagus   -  person yossi    schedule 02.11.2013


Jawaban (2)


Tidak ada fungsi sign bawaan (lihat jawaban ini untuk beberapa penjelasan: Mengapa tidak Python memiliki fungsi tanda? ), tetapi math.copysign mungkin berguna bagi Anda. http://docs.python.org/2/library/math.html#math.copysign

person Peter DeGlopper    schedule 01.11.2013

Saya rasa tidak ada fungsi bawaan, tetapi Anda dapat menjalankan fungsi Anda sendiri dengan cukup mudah:

def the_sign(num):
    return cmp(num, 0)
person John    schedule 01.11.2013
comment
Perhatikan bahwa cmp telah dihapus di Python3. - person Ashwini Chaudhary; 02.11.2013
comment
Saya menggunakan Python 2.7, keduanya berfungsi tetapi saya lebih suka math.copysign. Saya masih memberi +1;) - person user2746752; 02.11.2013