2016-01-21 3 views
1

Напишите программу, которая запрашивает поплавок от пользователя, а затем применит к ней sqrt() 10 раз подряд. Вычислите результат двумя разными способами. (Подсказка: SQRT() на самом деле является экспоненцирование.)Вычислить квадратный корень из номера ввода пользователя

это то, что я получил:

from math import * 

def main(): 
    n = eval(input("Please enter a whole number: ")) 
    fact = 1 
    for i in range(10): 
     n = sqrt(n)*fact 
    print("In",i+1 , "The sqrt of :", n , "is", n) 

main() 

я хочу показать, как это: например, ввод число: 16

В 1 , The SQRT 16 составляет 4

В 2, SQRT 4 2

... ...

В 10, sqrt of .. is ..

, пожалуйста, помогите?

+2

Тяжелое намек 'SQRT (х) == х^0.5' –

+0

Используйте' int' (или 'float', если вы хотите принять значения с плавающей точкой) вместо' eval'. – chepner

+0

У вас есть дополнительная информация? – timgeb

ответ

0

Вот ваш исправленный код:

from math import * 

def main(): 
    n = float(input("Please enter a whole number: ")) 
    for i in range(10): 
     n = sqrt(n) 
     print("In",i+1 , "The sqrt of :", n , "is", n) 

main() 

Вы необходимы для преобразования пользовательского ввода поплавка и переменной fact. Фраза eval была неправильной.

А «второй» способ сделать это является использование ** 0.5:

def other(): 
    n = float(input("Please enter a whole number: ")) 
    for i in range(10): 
     n = n ** 0.5 
     print("In", i+1 , "The sqrt of :", n , "is", n) 

other() 

Хотя я не знаю, почему вы никогда не должны были бы двумя способами.

+0

Вы имеете в виду '**', а не '^'. –

+0

@HughBothwell Хорошая точка, отредактировано –

0

Вот другой/элегантный способ применить квадратный корень п раз:

>>> def comp_nth_sqrt(x, n): 
...  return x**(0.5**n) 
... 
>>> comp_nth_sqrt(4, 1) 
2.0 
>>> comp_nth_sqrt(4, 2) 
1.4142135623730951 
>>> comp_nth_sqrt(4, 10) 
1.0013547198921082 

Если вы используете python2, пожалуйста, используйте

x = int(raw_input()) 

если вы используете Python3, пожалуйста, используйте

x = int(input()) 

, чтобы получить ваш номер. eval не нужен и в большинстве случаев злой.

0
## Write a program to check if the input is accept square root or not 
## If it accept print the square root if not print sorry..etc 
import math 

num_sqrt = float(input("Enter number to get the Square root : ")) 
num_sqrt = math.sqrt(num_sqrt)  #to find the square root 
num_sqrt = str(num_sqrt)   #float to string 
n = num_sqrt[len(num_sqrt)-2]  #to find "." 
if n == "." :      
    num_sqrt = float(num_sqrt) 
    print(num_sqrt) 
else : 
    print("Sorry this number doesn't have square root")