• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 1. Entering and output of data

难度:

任务«银行贡献»

💻 Python

想象一下,你来到黄金卢布银行开设一笔存款。经理向你推荐了一个按月复利的方案。这意味着每个月产生的利息会加入到本金中,下个月的利息将基于新的、更高的金额计算。

经过一定月份后,程序还会计算你从存款中获得的净收益。由于结果会有很多小数位,我们只取数字的整数部分。

输入格式

程序接收三个输入值,每个值占一行:

  1. 第一行:初始存款金额(可以是小数)。
  2. 第二行:年利率(可以是小数)。
  3. 第三行:存款期限(以月为单位,整数)。

输出格式

程序应显示两行:

  1. 第一行:文本: 账户总金额: 后跟空格和总金额(整数)。第二行:文本: 净利润: 后跟空格和净利润金额(整数)。

示例

输入

100000
12
3

输出

账户总金额:103030.1
已实现利润:3030

提示

Reading multiple variables from a single line

Python has a convenient way to count multiple variables in a single input() call. This is especially useful in tasks where data is served in a single line, separated by some character (most often a space).

How it works:

  1. input() reads the entire string, for example "20 30".
  2. The .split() method "cuts" this string by the specified separator (by default, by a space) and creates a list of strings: ['20', '30'].
  3. Function map(int, ...) applies the int (integer conversion) function to each element of this list. The result is a special map object.
  4. Finally, Python "unpacks" this object using the variables a and b.

Example: Input:

20 30

Reading:

a, b = map(int, input().split()) # float can be used if fractional numbers are needed
print(a, b) # outputs 20 30
print(type(a)) # outputs <class 'int'>

Useful tips:

  • If the numbers are separated not by a space, but, for example, by a comma (input: 20,30), specify this in the split() method: input().split(',').
  • Make sure that the number of variables to the left of = matches the number of values in the row. If they do not match, the program will return the error ValueError.

Three types of division

There are three different division operators in Python, and each one serves a different purpose.

  1. / Ordinary (real) division This operator always returns a fractional number (float) as a result, even if the numbers are completely divisible.

    a = 27
    b = 10
    print(a/5) # outputs 5.4
    print(b/2) # outputs 5.0 (note, not 5, but 5.0)
    
  2. // Integer division This operator performs division and discards the fractional part, returning an integer (int). It sort of answers the question "how many times does one number fit entirely into another?".

    a = 27
    print(a// 5) # outputs 5 (because 5 is placed in 27 five full times)
    
  3. % The remainder of the division (modulo division) This operator returns what is "left" after the integer division.

    a = 27
    print(a %5) # outputs 2
     Logic: the nearest number to 27 that is divisible by 5 without remainder is 25. 
    # Difference: 27-25 = 2.
    

Practical application %: The most common use of the % operator is the parity check. Any even number is divisible by 2 without remainder, and an odd number is divisible by 1.

a = 27
b = 14
print(f"Is {a} an odd number? The remainder of the division by 2: {a %2}") # outputs 1
print(f"Is {b} an even number? The remainder of the division by 2: {b %2}") # outputs 0

Exponentiation

To exponentiate a number in Python, the ** operator is used.

a = 2
b = 3
print(a**3) # outputs 8 (2 to the power of 3)
print(b**2) # outputs 9(3 to the power of 2)

Useful tips:

  • To extract the square root, you can raise the number to the power of 0.5.
    print(9**0.5) # outputs 3.0
    
  • There is also a built-in function pow(a,b) that does the same thing as a**b.
    print(pow(2, 3)) # outputs 8
    

print() function and string formatting

The print() function outputs data to the screen. Simply adding strings and variables using + is inconvenient, since numbers need to be constantly converted into strings using str(). Modern Python offers more elegant ways.

f-strings (f-strings) - recommended method: This is the most modern, fastest and most readable way. The string is preceded by the letter f, and variables or expressions are specified inside curly braces {}.

name = "Alice"
age = 30
print(f"Name: {name}, Age: {age}")
# Output: Name: Alice, Age: 30

Advantage: you can perform operations right inside the brackets.

print(f"In a year she will be {age + 1}")
# Conclusion: In a year she will be 31

The .format() method is an older, but still relevant method: Empty curly braces {} are placed in the line, and after the line the .format() method is called, to which variables are passed.

name = "Alice"
age = 30
print("Name: {}, Age: {}".format(name, age))
# Output: Name: Alice, Age: 30

Useful tips for print():

  • Separator sep: By default, print separates its arguments with a space. This can be changed.
    print(1, 2, 3, sep="-") # outputs 1-2-3
    
  • Ending end: By default, print adds a newline after the output \n. This can also be changed so that the following print outputs continue on the same line.
    print("Hello,", end="")
    print("world!")
    # The output will be in one line: Hello, world!
    
main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
开发者解答
# Считываем начальные данные, преобразуя их в нужные типы
initial_sum = float(input())
annual_rate = float(input())
months = int(input())

# Вычисляем месячную процентную ставку в долях от единицы
monthly_rate = annual_rate / 12 / 100

# Рассчитываем итоговую сумму по формуле сложных процентов
final_sum = initial_sum * (1 + monthly_rate) ** months

# Рассчитываем чистую прибыль
profit = final_sum - initial_sum

# Выводим результат
print("Итоговая сумма на счете:", int(final_sum))
print("Чистая прибыль:", int(profit))

🎉 恭喜! 🎉

你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!