Bagaimana Anda mencetak akar angka dengan python?

Artikel ini dibuat untuk membahas beberapa program dengan Python, yang menemukan dan mencetak akar kuadrat dari angka yang dimasukkan oleh pengguna saat dijalankan. Berikut adalah daftar pendekatan yang digunakan

  • Temukan akar kuadrat dari angka menggunakan operator **
  • Menggunakan matematika. sqrt() fungsi bawaan
  • Menggunakan matematika. pow()
  • Menggunakan fungsi yang ditentukan pengguna
  • Menggunakan kelas

Temukan Akar Kuadrat dari Angka menggunakan **

Untuk menemukan akar kuadrat dari angka apa pun yang diberikan oleh pengguna dengan Python, Anda harus meminta dari pengguna untuk memasukkan angka, lalu temukan dan cetak akar kuadratnya seperti yang ditunjukkan pada program di bawah ini. Pertanyaannya adalah, tulislah program Python untuk menemukan akar kuadrat dari sebuah angka. Inilah jawabannya

print("Enter a Number: ")
num = int(input())

squareroot = num ** 0.5

print("\nSquare Root =", squareroot)

Berikut adalah output awal yang dihasilkan oleh program Python ini

find square root of number python

Sekarang masukkan angka apa saja katakanlah 25 dan tekan ENTER kunci untuk menemukan dan mencetak akar kuadratnya seperti yang ditunjukkan pada snapshot yang diberikan di bawah ini

square root of number python

Catatan - a ** b mengembalikan ab. Jadi num ** 0. 5 mengacu pada angka0. 5 (itu sama dengan num1/2)

Temukan Akar Kuadrat menggunakan matematika. sqrt() Fungsi Bawaan

Program ini menggunakan matematika. sqrt() untuk menemukan akar kuadrat. Metode ini didefinisikan dalam modul matematika, oleh karena itu sebelum menggunakannya, saya harus mengimpor modul matematika

import math

print("Enter a Number: ", end="")
try:
  num = int(input())
  res = math.sqrt(num)
  print("\nSquare Root of " +str(num)+ " = " +str(res))
except ValueError:
  print("\nInvalid Input!")
_

Ini adalah contoh yang dijalankan dengan input pengguna 12

python find square root of number

Untuk memformat nilai hingga hanya dua desimal, ganti pernyataan berikut (dari program di atas)

print("\nSquare Root of " +str(num)+ " = " +str(res))

dengan pernyataan yang diberikan di bawah ini

print("\nSquare Root of %0.2f = %0.2f" %(num, res))

sekarang hasilnya terlihat seperti input pengguna yang sama, yaitu 12

python find square root of given number

Metode str() digunakan untuk mengubah semua jenis nilai menjadi nilai jenis string

Temukan Akar Kuadrat menggunakan matematika. pow()

Program ini menggunakan metode pow() untuk mencari akar kuadrat. Matematika. pow(a, b) mengembalikan nilai ab. Jadi matematika. pow(bil, 0. 5) mengacu pada angka0. 5

import math

print("Enter a Number: ", end="")
num = int(input())

res = math.pow(num, 0.5)
print("\nSquare Root of %0.2f = %0.2f" %(num, res))
_

Temukan Akar Kuadrat menggunakan Fungsi yang Ditentukan Pengguna

Program ini dibuat menggunakan fungsi yang ditentukan pengguna bernama sqrt(), yang mengembalikan akar kuadrat dari angka yang diteruskan sebagai argumennya. Oleh karena itu menggunakan res = sqrt(num), akar kuadrat dari num diinisialisasi menjadi res

def sqrt(n):
  return n ** 0.5

print("Enter a Number: ", end="")
num = int(input())

res = sqrt(num)
print("\nSquare Root of %0.2f = %0.2f" %(num, res))

Temukan Akar Kuadrat menggunakan Kelas

Ini adalah program terakhir yang dibuat menggunakan kelas. Kelas adalah fitur berorientasi objek dari Python. Fungsi di dalam kelas disebut sebagai fungsi anggota. Oleh karena itu untuk mengaksesnya, diperlukan objek kelas. Jadi saya telah membuat objek bernama obj dari kelas CodesCracker untuk mengakses fungsi anggotanya menggunakan dot (. ) operator

Penafian. ini untuk kasus penggunaan yang lebih khusus. Metode ini mungkin tidak praktis dalam semua keadaan

Manfaat

  • dapat menemukan nilai integer (i. e. bilangan bulat mana yang merupakan akarnya?)
  • tidak perlu dikonversi ke float, jadi presisi lebih baik (bisa dilakukan dengan baik juga)

Saya pribadi mengimplementasikan yang ini untuk tantangan crypto CTF (serangan akar kubus RSA), di mana saya membutuhkan nilai bilangan bulat yang tepat

Gagasan umum dapat diperluas ke akar lainnya

def int_squareroot(d: int) -> tuple[int, bool]:
    """Try calculating integer squareroot and return if it's exact"""
    left, right = 1, (d+1)//2
    while left d:
            left, right = left, x
        else:
            left, right = x, right
    return left, left**2==d
_

EDIT

Seperti yang juga ditunjukkan oleh @wjandrea, ** kode contoh ini TIDAK dapat dihitung **. Ini adalah efek samping dari fakta bahwa itu tidak mengubah apa pun menjadi pelampung, jadi tidak ada presisi yang hilang. Jika root adalah bilangan bulat, Anda mendapatkannya kembali. Jika tidak, Anda mendapatkan angka terbesar yang kuadratnya lebih kecil dari angka Anda. Saya memperbarui kode sehingga juga mengembalikan bool yang menunjukkan apakah nilainya benar atau tidak, dan juga memperbaiki masalah yang menyebabkannya berputar tanpa batas (juga ditunjukkan oleh @wjandrea). Implementasi metode umum ini masih berfungsi agak aneh untuk angka yang lebih kecil, tetapi di atas 10 saya tidak punya masalah

Mengatasi masalah dan keterbatasan metode/implementasi ini

Untuk angka yang lebih kecil, Anda bisa menggunakan semua metode lain dari jawaban lain. Mereka umumnya menggunakan pelampung, yang mungkin kehilangan presisi, tetapi untuk bilangan bulat kecil itu berarti tidak ada masalah sama sekali. Semua metode yang menggunakan float memiliki batas yang sama (atau hampir sama) dari ini

Jika Anda masih ingin menggunakan metode ini dan mendapatkan hasil float, seharusnya sepele untuk mengonversi ini untuk menggunakan float juga. Perhatikan bahwa itu akan memperkenalkan kembali kehilangan presisi, manfaat unik metode ini dibandingkan yang lain, dan dalam hal ini Anda juga dapat menggunakan salah satu jawaban lainnya. Saya pikir versi metode newton menyatu sedikit lebih cepat, tapi saya tidak yakin

Untuk angka yang lebih besar, di mana hilangnya presisi dengan float ikut berperan, metode ini dapat memberikan hasil yang lebih dekat dengan jawaban sebenarnya (tergantung pada seberapa besar inputnya). Jika Anda ingin bekerja dengan non-bilangan bulat dalam rentang ini, Anda dapat menggunakan tipe lain, misalnya angka presisi tetap dalam metode ini juga

Edit 2, pada jawaban lain

Saat ini, dan afaik, satu-satunya jawaban lain yang memiliki presisi serupa atau lebih baik untuk jumlah besar daripada implementasi ini adalah yang menyarankan SymPy, oleh Eric Duminil. Versi itu juga lebih mudah digunakan, dan bekerja untuk semua jenis nomor, satu-satunya downside adalah membutuhkan SymPy. Implementasi saya bebas dari ketergantungan besar apa pun jika itu yang Anda cari

Bagaimana Anda mencetak root dengan Python?

SqRoot_Usr. py .
impor matematika # impor modul matematika
a = int(input("Masukkan angka untuk mendapatkan akar Kuadrat")) # ambil input
res = matematika. sqrt(a) # Gunakan matematika. sqrt() dan meneruskan variabel a
print("Akar kuadrat dari bilangan adalah", res) # mencetak Akar Kuadrat

Bagaimana Anda menemukan akar angka dengan Python?

sqrt() function adalah fungsi bawaan dalam bahasa pemrograman Python yang mengembalikan akar kuadrat dari angka apa pun. Sintaksis. matematika. sqrt(x) Parameter. x adalah angka apa pun sehingga x>=0 Mengembalikan. Ini mengembalikan akar kuadrat dari angka yang diteruskan dalam parameter.

Apa itu root () di Python?

sqrt() method mengembalikan akar kuadrat dari sebuah angka . Catatan. Angka harus lebih besar dari atau sama dengan 0.

Bagaimana Anda menulis root 3 dengan Python?

Python 3 - Nomor sqrt() Metode