Py学习  »  Python

python中的计数步骤[保持]

Thurgood Westlake • 4 年前 • 684 次点击  

功能让我很困惑。

我这里的代码有什么问题,我肯定有很多问题,但请详细说明我做错了什么。

2000步是1英里,输入是步数,输出是步行英里数。

def steps_to_miles(user_steps):
    steps = input();
    mile = steps / 2000
    return user_steps

print('%0.2f' % user_steps)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46590
 
684 次点击  
文章 [ 4 ]  |  最新文章 4 年前
Kundan Jha
Reply   •   1 楼
Kundan Jha    4 年前

你的代码应该是

def steps_to_miles():
    steps = input();
    mile = steps / 2000
    return mile

print('%0.2f' %steps_to_miles())

这应该管用。

user10417531
Reply   •   2 楼
user10417531    4 年前

这个 input() 函数等待用户输入-如果您在代码中不给它提供参数,它将不显示任何消息并等待您的输入。

它不代表函数输入-已经由 user_steps 参数。

这个 用户步骤 仅在函数(缩进部分)的范围内定义,因此 用户步骤 你的 print 语句不是同一个变量。

我想你是想这样写的

def steps_to_miles(steps):
    return steps / 2000

user_steps = input("Please enter the number of steps walked:\t")
print("You have walked %0.2f miles !" % steps_to_miles(user_steps))
Muhammad Hammad
Reply   •   3 楼
Muhammad Hammad    4 年前

对于计算步骤,代码如下:

def steps_to_miles():
    steps = int(input('Enter Steps: '));
    mile = steps / 2000
    return mile

print('You Walked',steps_to_miles(),'miles')
Stefan
Reply   •   4 楼
Stefan    4 年前

问题

  1. 输入返回一个字符串,不能对其进行算术运算
  2. python不使用分号作为行结束符
  3. 你返回的是步数,而不是英里数
  4. 您没有调用print语句中的函数
  5. 转换函数不应要求输入

试试这个

def steps_to_miles(user_steps):
    miles = int(user_steps) / 2000
    return miles

例子

>>> steps = input()
4321
>>> print( '%0.2f' % steps_to_miles( steps ) )
2.16