Could not convert string to float python ошибка

I use this statement twice in my program. The second time it fails.

output=""
pitcherName=input("Enter name of the next contestant, or nothing to quit: ")
pitcherTime=input("Enter time for " +str(pitcherName)+ " in milliseconds: ")
highestSpeed=pitcherTime
lowestSpeed=pitcherTime
fastestPitcher=pitcherName
slowestPitcher=pitcherName
while pitcherName!="":
    pitcherName=input("Enter name of the next contestant, or nothing to quit: ")
    pitcherTime=float(input("Enter time for " +str(pitcherName) +" in milliseconds: "))
    pitcherSpeed=round(40908/pitcherTime, 2)
    output=output +str(pitcherName)+ "\t" +str(round(pitcherTime, 2)) + "\t"  +str(round(pitcherSpeed, 2)) + "\n"
    if fastestPitcher==pitcherName and pitcherSpeed>highestSpeed:
        fastestPitcher=pitcherName
        highestSpeed=pitcherSpeed
    elif slowestPitcher==pitcherName and pitcherSpeed>lowestSpeed:
        slowestPitcher=pitcherName
        lowestSpeed=pitcherSpeed
print("Name" + "\t" +"Time" +"\t" +"Speed" + "\n" + "===========================" + "\n")
print(output)
print("Slowest pitcher was " +str(slowestPitcher) +" at " +str(round(lowestSpeed, 2)) +" miles per hour")
print("Fastest pitcher was " +str(fastestPitcher) +" at " +str(round(highestSpeed, 2)) +" miles per hour")
exit=input("Press nothing to`enter code here` exit")

Error received:

pitcherTime=float(input("Enter time for " +str(pitcherName) +" in milliseconds: "))
ValueError: could not convert string to float: 

I know this may be a basic question, but I’d like to know why it worked outside of the while loop, but not inside of it. Is it not required to convert to float after is has been done already?

asked Nov 2, 2014 at 18:36

EllioLintt's user avatar

EllioLinttEllioLintt

971 gold badge3 silver badges9 bronze badges

3

The reason this didn’t work almost certainly has nothing to do with your while loop. In the absence of unincluded code that’s doing something really strange, the reason it’s most probably failing is that the input provided by the user cannot be converted to float. (For example, if they typed 1.0fzjfk in your input, in which case with float() you’re actually calling float("1.0fzjfk"), which is impossible.)

The substance of your problem is almost entirely predicated on user input, though, so it’s difficult to point out exactly where and how it failed on your end.

answered Nov 2, 2014 at 18:54

furkle's user avatar

furklefurkle

5,0191 gold badge15 silver badges24 bronze badges

Do this way, try and cath the exception raise ValueError

while pitcherName!="":
    try:
        pitcherName=input("Enter name of the next contestant, or nothing to quit: ")
        pitcherTime=float(input("Enter time for " +str(pitcherName) +" in milliseconds: "))
    except ValueError:
        print "input error"

its taken in consideration pitcherName has some value before while

answered Nov 2, 2014 at 18:41

Hackaholic's user avatar

HackaholicHackaholic

19.1k5 gold badges54 silver badges72 bronze badges

0

Ty this approach

def get_time():
    pitcherName = input("Enter name of the next contestant, or nothing to quit: ")
    goodinput = False
    while not goodinput:
        try:
            pitcherTime = float(input("Enter time for " + str(pitcherName) + " in milliseconds: "))
            goodinput = True
        except ValueError:
            goodinput = False
            print("Invalid Input")



get_time()

answered Nov 2, 2014 at 19:16

meda's user avatar

medameda

45.1k14 gold badges92 silver badges122 bronze badges

Previously you said

I use this statement twice in my program. The second time it fails.

pitcherTime=float(input("Enter time for " +str(pitcherName) +" in milliseconds: "))

If you didn’t changed the code, that was not true.

# case 1
pitcherTime=input("Enter time for " +str(pitcherName)+ " in milliseconds: ")

#later...

#case 2
pitcherTime=float(input("Enter time for " +str(pitcherName) +" in milliseconds: "))

There is a difference.

input read one line from stdin and returns it as string. The result (string) you store in pitcherTime in first case.

In second case, you write a prompt, get string, and then try to convert it to float.
At the moment the error occurs. Python says exactly what went wrong:

could not convert string to float: 

As furkle said, it simply means that you gave string which can’t be converted to float.

So, the problem is not in your code. The problem is in input you or anyone gives to the program.

Community's user avatar

answered Nov 2, 2014 at 19:57

GingerPlusPlus's user avatar

GingerPlusPlusGingerPlusPlus

5,3561 gold badge29 silver badges52 bronze badges

This will occur when the user types in a value that is inconvertible to a float. You can detect if this occurs by wrapping it in a try...except like this:

try:
    pitcherTime=float(input("Enter time for " +str(pitcherName) +" in milliseconds: "))
except ValueError:
    continue # Start the loop over if they enter an invalid value.

Really though, merely putting this inside a while loop isn’t going to change the error. Not entirely sure what you meant by that, considering you didn’t give much context.

halfer's user avatar

halfer

19.9k17 gold badges100 silver badges187 bronze badges

answered Nov 2, 2014 at 18:55

phantom's user avatar

phantomphantom

1,4577 silver badges15 bronze badges

Are you facing the “ValueError: could not convert a string to float” error in Python while converting a string into a float?

In this article, we’ll discuss the “ValueError: could not convert a string to float” error in Python and how to fix it. This error occurs when you pass a string into the float() to convert it into a float, and the string isn’t supported. 

To understand the concept correctly, let’s dive deep into it and learn using a practical example.

Table of Contents
  1. How Does float() Work in Python?
  2. What is the “ValueError: Could Not Convert a String to Float” Error in Python?
  3. How to Fix the “ValueError: Could Not Convert a String to Float” Error in Python?

How Does float() Work in Python?

The float() function type casts any right and acceptable data types into a float number. So even if you provide a string and it’s a valid value for the float function, it’ll convert it into a floating number.

Code

# decimal to float

decimal_num = 10

float_num = float(decimal_num)

float_num

Output

10.0

As you can see in the above example, we have converted the decimal number 10 into a float number 10.0. And to verify that it is working as expected, let’s check the data types of decimal_num and float_num using the type() function.

Code

# decimal to float

decimal_num = 10

print(type(decimal_num))




float_num = float(decimal_num)

print(type(float_num))

Output

<class 'int'>

<class 'float'>

Before type casting, the type of the number 10 was int, whereas, after conversion, the data type is converted into float, as demonstrated in the above example.

Alright, now we have understood type casting in Python and how the float function works 🙂 let’s see what is ValueError could not convert string to float in Python and why it occurs.

What is the “ValueError: Could Not Convert a String to Float” Error in Python?

In Python, if you convert a string object into a floating point, you may face the ValueError could not convert the string to float numerous times. Usually, this happens if the string object is an invalid parameter to the float().

Code

# decimal to float

decimal_num = "10a" # invalid value

float_num = float(decimal_num)

float_num

Output

ValueError: could not convert string to float: '10a'

As you can see, the error itself is self-explanatory; it says that ValueError: could not convert string to float: ’10a’. So we are trying to convert 10a, which isn’t a valid numeric value, into a floating point value; hence we are getting the ValueError. 

Usually, this error occurs when you attempt to convert a string to float that contains invalid characters like spaces, commas, special characters, and invalid combinations of numbers and alphabets.

Alright! We are right there to fix the ValueError 🤩 let’s fix it. To fix it, you need to provide a numeric value, whether a string or a decimal.

Code

# decimal to float

decimal_num = "100" # Valid numeric value



float_num = float(decimal_num)

float_num

Output

100.0

Code

# doller to float num

dlr = '$100'

flt_dlr = float(dlr)


flt_dlr

Output

ValueError: could not convert string to float: '$100'

In the above code, the error occurs because of the special character $ because the float() function does not support special characters. In such scenarios, you can replace the () function to get the job done. So let’s see how we can fix it in the following example:

Code

# doller to float num

dlr = '$100'
dlr = dlr.replace("$", "")



flt_dlr = float(dlr)

print(flt_dlr)

Output

100.0

Use Exception Handling to Fix the “ValueError: Could Not Convert a String to Float” Error in Python

In computer programming, errors and exceptions are expected that you face, but we are still blessed with advanced programming concepts that help us handle errors and exceptions. And exception handling is one of the techniques that helps us handle the errors before crashing your program.

Let’s use try-except blocks to handle exceptions in Python:

Code

# try block

try:

    dlr = '$100'

    flt_dlr = float(dlr)

    print(flt_dlr)

    

# except block    

except:

    print ("ValueError: 'Please provide a valid value to the float()' ")

    

print("\nWow! the program isn't crashed.\nIsn't Exception handling cool")

Output

ValueError: 'Please provide a valid value to the float()' 



Wow! the program isn't crashed.

Isn't Exception handling cool

Conclusion

To summarize this article on how to fix the “ValueError: could not convert a string to float” error in Python, we have discussed the working of the float() function and the conversion of a string or integer value into a floating point value. 

In most cases, we are dealing with string data in computer programming, whether retrieving data from a CSV file or getting dynamic input from the user in run time. And to manipulate the data, we must typecast it into the required data type like float, string, boolean, or octal.

Let’s have a quick recap of the topics discussed in this article

  1. How Does the float() Function Work in Python?
  2. What is the “ValueError: Could Not Convert a String to Float” Error in Python?
  3. How to Fix the “ValueError: Could Not Convert a String to Float” Error in Python?
  4. How Does the replace() Function works?
  5. How to Handle Expectations in Python?

Time to explore more 🔍, how to display a float with three decimal places in Python.

In Python, the ValueError: could not convert string to float error occurs when you try to convert a string to a float, but the string cannot be converted to a valid float. In this tutorial, we will look at the common mistakes that could lead to this error and how to fix it with the help of examples.

fix valueerror could not convert string to float in python

Understanding the error

The float() function in Python is used to convert a given value to a floating-point number. It takes a single argument which can be a number or a string. It is generally used to convert integers and strings (containing numerical values) to a floating-point number.

For a string to be successfully converted to a float in Python, it must contain a valid numerical value, which includes numerical values with a decimal point and/or a preceding sign (+ or -). If the string cannot be converted to a float value, it results in the ValueError: could not convert string to float.

Common Scenarios for this error

The following are the common scenarios in which this error can occur when converting a string to float.

  • The string contains non-numeric characters
  • The string is empty
  • The string contains multiple decimal points
  • The string contains commas or other non-numeric characters

Let’s look at the above scenarios with the help of some examples.

# string contains non-numeric characters
string_value = "abc123"
float_value = float(string_value)

Output:

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

Cell In[5], line 3
      1 # string contains non-numeric characters
      2 string_value = "abc123"
----> 3 float_value = float(string_value)

ValueError: could not convert string to float: 'abc123'

Here, the string string_value contains alphabetical characters and thus it cannot be converted to a floating-point number. You’ll also get this error for other non-numerical characters, for example, if your string has spaces (preceding, trailing, or, in the middle). The only non-numerical characters allowed are – a decimal point, a sign character (+ or -) present at the beginning, or an exponent character.

# the string is empty
string_value = ""
float_value = float(string_value)

Output:

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

Cell In[6], line 3
      1 # the string is empty
      2 string_value = ""
----> 3 float_value = float(string_value)

ValueError: could not convert string to float: ''

We get the same error with an empty string.

# string contains multiple decimal points
string_value = "12.34.56"
float_value = float(string_value)

Output:

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

Cell In[7], line 3
      1 # string contains multiple decimal points
      2 string_value = "12.34.56"
----> 3 float_value = float(string_value)

ValueError: could not convert string to float: '12.34.56'

The string in the above example contains multiple decimal points and is not a valid numerical value and thus we get the error.

# string contains other non-numerical characters like comma, etc.
string_value = "1,000.0"
float_value = float(string_value)

Output:

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

Cell In[8], line 3
      1 # string contains other non-numerical characters like comma, etc.
      2 string_value = "1,000.0"
----> 3 float_value = float(string_value)

ValueError: could not convert string to float: '1,000.0'

Although “1,000.0” can be considered as a valid numerical value but commas present in strings will cause this ValueError when trying to convert it to a floating-point value.

Valid conversions

Let’s now also look at some cases where this error does not occur to understand what’s expected when converting a string to a float value.

# string is a valid integer
string_value = "1234"
float_value = float(string_value)
print(float_value)

Output:

1234.0

In the above example, all the characters in the string are numerical characters; thus, we don’t get any errors converting it to a floating-point value.

# string is a valid real number
string_value = "1234.75"
float_value = float(string_value)
print(float_value)

Output:

1234.75

We also don’t get an error for a string containing a valid real number with a decimal point.

# string contains a sign
string_value = "+1234.75"
float_value = float(string_value)
print(float_value)

Output:

1234.75

Here, the string has a preceding sign and you can see that we don’t get an error. Note that if you use the sign incorrectly, you’ll get an error on converting it to a float value.

# string is in exponential notaion
string_value = "1.23e-4"
float_value = float(string_value)
print(float_value)

Output:

0.000123

Exponential notation string value for a number is also valid when converting a string to a float.

How to Fix the Error?

To fix this error, make sure the string you are trying to convert contains a valid numerical value before converting it using the float() function. There are many ways in which you can do so –

  1. Use a regular expression
  2. Use exception handling

Let’s look at both of these methods with the help of some examples.

Use a regular expression

Regular expressions (regex) are a sequence of characters that define a search pattern. They are used to match and manipulate text and are commonly used in programming languages and text editors.

You can use a regular expression to pattern match and extract valid numerical values from a string before applying the float() function to convert them. This way you’ll only apply the float() method to valid numerical strings and thus can avoid the ValueError: could not convert string to float error.

To extract only numbers (optionally with a decimal point and a preceding + or – sign), you can use the following regular expression:

[-+]?[0-9]*.?[0-9]+

This regular expression matches:

  • [-+]?: an optional + or – sign
  • [0-9]*: zero or more digits
  • .?: an optional decimal point
  • [0-9]+: one or more digits

This regular expression will match numbers such as 123, -45.67, +89.0, and 0.123.

Let’s look at an example.

import re

# pattern to look for
valid_num_pattern = r'[-+]?[0-9]*.?[0-9]+'
# the string value
string_value = "abc 123.45+234.12"
# extract the numbers
nums = re.findall(valid_num_pattern, string_value)
# show the extracted numbers
print(nums)

Output:

['123.45', '+234.12']

In the above example, we are using the findall() function from the re module to find all the matches for a valid number in a string, it returns a list of all the valid string numbers. You can now go ahead and apply the float() function on each of the values in the returned list to convert them to floating-point values.

result = [float(val) for val in nums]
print(result)

Output:

[123.45, 234.12]

You can see that we don’t get an error here.

Use exception handling

Alternatively, you can use error handling to detect this error and then perform corrective steps, for example, not converting the string to a float or maybe extracting the numeric values only from the string, etc.

Let’s look at an example.

string_value = "abc1234"
try:
    float_value = float(string_value)
except ValueError:
    print("Cannot convert string to float")

Output:

Cannot convert string to float

Here, we are catching the error and displaying a message that the string value could not be converted to a float value.

Conclusion

The ValueError: could not convert string to float error occurs when you try to convert a string to a float, but the string cannot be converted to a valid float. To fix this error, you need to check the string for non-numeric characters, empty values, multiple decimal points, and commas or other non-numeric characters. You can use a regular expression to extract only valid numerical values from the string. You can also use error handling to avoid this error. By following the steps outlined in this tutorial, you can easily fix this error and continue working with numerical data in Python.

You might also be interested in –

  • How to Fix – TypeError: can only concatenate str (not ‘int’) to str
  • How to Fix – TypeError ‘float’ object is not subscriptable
  • How to Fix – TypeError ‘set’ object is not subscriptable
  • Piyush Raj

    Piyush is a data professional passionate about using data to understand things better and make informed decisions. He has experience working as a Data Scientist in the consulting domain and holds an engineering degree from IIT Roorkee. His hobbies include watching cricket, reading, and working on side projects.

    View all posts

ValueErrors — это тип исключения в Python. Они классифицируются как ошибки времени выполнения, поскольку их невозможно идентифицировать во время написания программы, отладчиком или средствами подсветки синтаксиса в IDE.

Одним из распространенных примеров ошибки ValueError является попытка разделить число на ноль. Поскольку в написании этого оператора нет синтаксической ошибки, интерпретатор резко остановится при попытке выполнить код, поскольку логически невозможно делить что-либо на ноль.

Другой экземпляр ValueError возникает, когда вы пытаетесь преобразовать строку в целое число или число с плавающей запятой с помощью конструкторов. Поскольку нецелесообразно преобразовывать строку или любой другой тип данных, кроме целого числа, в тип с плавающей запятой, интерпретатор Python выдает исключение. Эта ошибка показана ниже:

ValueError                                Traceback (most recent call last)
<ipython-input-1-3038d8149efd> in <cell line: 2>()
ValueError: could not convert string to float: 'string input'

Ошибка, не может преобразовать строку в число с плавающей запятой может возникнуть, когда интерпретатор не понимает, как преобразовать строку в число с плавающей запятой в соответствии с требованиями кода.

Наиболее распространенной причиной этой ошибки является ввод данных пользователем. Принимая пользовательский ввод, пользователь может быть сбит с толку тем, какой тип значения он должен вводить в компьютер. Или, если программист не упомянул тип данных ввода перед запросом пользователя, интерпретатор может прочитать его как строку по умолчанию.

В пользовательском вводе между Python 2 и python3 было одно существенное различие. В Python 2 оператор raw_input() использовался для получения ввода от пользователя в формате по умолчанию. Например, если пользователь ввел целое число, интерпретатор прочитает его как целое число. Только если данный ввод был помещен в кавычки, интерпретатор считал бы его строкой.

Тогда как в Python 3 этот метод был изменен. Raw_input() стал только input(). В наше время, если только input() используется оператор, формат по умолчанию для любого типа пользовательского ввода, будь то числа или слова, будет считаться строкой. Вместо этого мы можем использовать конструкторы float(), int(), чтобы ограничить пользовательский ввод определенными типами.

Когда используются вышеуказанные конструкторы и программа требует ввода с плавающей запятой, но получает строку, она вызовет ошибку значения.

В приведенной ниже программе мы пытаемся разделить десятичное число (с плавающей запятой, а не целое число) на 10. Требуемое число с плавающей запятой будет меняться в зависимости от ввода пользователя. Мы использовали конструктор float(), чтобы ограничить тип ввода, а также преобразовать данный пользовательский ввод в float. Мы предоставим строковый ввод и посмотрим, как появится ошибка значения.

Ошибка значения не может преобразовать строку в число с плавающей запятой

Ошибка значения не может преобразовать строку в число с плавающей запятой

Связано: Обработка ValueError в Python: обнаружение строк и целых чисел.

Борьба с ValueError в Python: стратегия Try-Except

Обработка ошибок значений в Python аналогична обработке других исключений в Python 3. Для их обработки можно использовать блок try и exclude. Оператор try и exclude — наиболее распространенный способ обработки ошибок в этом языке программирования.

Давайте посмотрим, как использовать блок try и exclude для обработки этой ошибки значения.

#using try and except to handle value error
try: #using the try block
  num=float(input("Enter a number (precision upto atleast one decimal place)= "))
  print("After dividing by 10 we get= ", num/10)
except ValueError: #using the except block 
  print("Please enter a number as per instruction!")

Теперь, если вы введете строку, вывод будет выглядеть так:

Enter a number (precision up to at least one decimal place)= Hello
Please enter a number as per instruction!

И, если мы дадим правильный ввод с плавающей запятой, вывод будет:

Enter a number (precision upto atleast one decimal place)= 16.663
After dividing by 10 we get=  1.6663000000000001

Обработка ошибки значения с помощью Try And Except

2 типа вывода: обработка ошибки значения с использованием Try и Except

Мы также можем использовать if и not утверждения друг с другом вместе с isdigit() функция. isdigit() Функция ищет числа в переменной, и ее можно использовать для проверки того, относится ли пользовательский ввод к желаемому типу данных или нет.

Вот как вы можете использовать операторы if, not вместе с функцией isdigit() для идентификации строк и чисел с плавающей запятой.

#using if, not and isdigit()
num=(input("Enter a number (precision upto atleast one decimal place)= "))
#check if the variable has digits
if not num.isdigit() :
  print("Please enter a number as input!")
else:
  print("After dividing by 10 we get= ", num/10)

Если вы введете строку, вы получите следующий вывод:

Enter a number (precision upto atleast one decimal place)= hi
Please enter a number as input!

Похожий: [SOLVED] TypeError «Неожиданный аргумент ключевого слова» в Python.

Подведение итогов: освоение обработки ValueError в Python

В этой статье рассматривается «ошибка значения». исключение в Питоне. Мы рассмотрели возможные причины этой ошибки, а также несколько исправлений. Их действительно легко реализовать и интерпретировать.

Вы можете использовать любой из них в своих проектах в соответствии с вашими требованиями. Как вы думаете, должны ли мы предоставлять дополнительные инструкции, когда запрашиваем у пользователей ввод?

One error you might encounter when running Python code is:

ValueError: could not convert string to float

This error occurs when you attempt to convert a string type to a float type, but the string contains non-numerical value(s)

This tutorial will show an example that causes this error and how I fix it in practice.

How to reproduce this error

Suppose you have a string type value in your Python code as follows:

Next, suppose you attempt to convert the string data into a float using the float() function as follows:

You’ll get this error when running the code:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    my_float = float(my_str)
ValueError: could not convert string to float: '30,3'

The error tells you that the string value ‘30,3’ can’t be converted to a float. The float() function can only convert strings that inherently represent float values.

If your string has special characters or alphabets, then Python will throw this error. Here are several other strings that will cause this error:

my_str = "20%"
# ❌ ValueError: could not convert string to float: '20%'

my_str = "7 weeks"
# ❌ ValueError: could not convert string to float: '7 weeks'

my_str = " "
# ❌ ValueError: could not convert string to float: ' '

The % symbol, the letters, and a whitespace string are all non-compatible with the float type.

How to fix this error

To resolve this error, you need to remove the characters that are causing the error.

For example, if your string contains commas for the decimal numbers, you need to replace it with a dot . symbol:

my_str = "30,3"
my_float = float(my_str.replace(",", "."))

print(my_float)

Output:

Next, you need to replace special characters and letters with an empty string. You can use the re.sub() function and a regular expression to do so:

import re

my_str = "2.5% today!@#"

new_str = re.sub(r'[^\d.]', '', my_str)
my_float = float(new_str)

print(my_float)  # 2.5

The regular expression [^\d.] will match any character that is not a digit or a decimal point. You need to specify the value that will substitute the matches as the second argument, which is an empty string in this case.

The third argument will be the string you want to modify. As a result, you’ll get a string that represents a float.

You might still get this error if the re.sub() function returns an empty string, so let’s add a try-except block to handle the error gracefully. Here’s the complete code to resolve this error:

import re

my_str = "0% sales"

# Replace , with . and filter out non-numeric values
new_str = re.sub(r'[^\d.]', '', my_str.replace(",", "."))

# Try to convert the string to float
try:
    my_float = float(new_str)
except ValueError:
    my_float = 0

print(my_float)  # 2.5

You can create a function that performs the conversion for you:

def str_to_float(str_in):
    import re
    str_in = re.sub(r'[^\d.]', '', str_in.replace(",", "."))
    # Try to convert the string to float
    try:
        float_res = float(str_in)
    except ValueError:
        float_res = 0

    return float_res

Anytime you need to convert strings to floats, just call the function like this:

print(str_to_float("#$ 89 days"))
print(str_to_float("30.5%"))
print(str_to_float("xyz"))

Output:

Now you can convert strings to floats without receiving the error.

Conclusion

The Python ValueError: could not convert string to float occurs when you pass a string that can’t be converted into a float to the float() function.

To resolve this error, you need to remove all elements that are non-compatible with float type like special characters and letters from the string.

But make sure you keep the dot . symbol to mark the decimal points, though, or the conversion will not match the original string.

I hope this tutorial is useful. See you in other tutorials! 👋

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Could not bind to host ошибка банджикорд
  • Counter strike global offensive ошибка при загрузке
  • Cossacks 3 ошибка связь потеряна
  • Counter strike global offensive ошибка fatal error
  • Corsa d ошибка c0545

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии