我对python有了新的了解,并且正在学习如何绕过它,
我试图创建一个程序来计算通过adb传输文件的时间,使用3mbps作为设置的传输速度,并首先将所有文件大小转换为字节(*1024*1024…)。
这是我的代码,它在底部产生的错误。
欢迎任何代码改进
class AdbCalculator:
file_size, size_units = input("Input the file size (MB or GB):\n").split()
float(file_size)
str(size_units)
size_units.capitalize()
time = 0.0
speed = 3 * 1024 * 1024
def sizeCalculator(self):
# Change size to bytes
if self.size_units == 'MB':
self.file_size *= (1024 * 1024)
elif self.size_units == 'GB':
self.file_size *= (1024 * 1024 * 1024)
else:
print('Wrong size units! use GB or MB\n')
return self.file_size
def timeCalculator(self):
# Calculating the time taken
self.time = self.file_size / self.speed
if self.time >= 60:
foo = self.time / 60
if foo <= 60:
return 'About %s Minutes' % foo # Time in minutes
else:
foo /= 60
return 'About %s hours' % foo # Time in Hours
else:
return 'About %s seconds' % self.time # Time in seconds
foo = AdbCalculator()
print(foo.sizeCalculator())
print(foo.timeCalculator())
这是输入2MB后的输出
222222222222...
Traceback (most recent call last):
File "/Users/User/Documents/Programming/python/python/adb time calculator.py", line 35, in <module>
print(foo.timeCalculator())
File "/Users/User/Documents/Programming/python/python/adb time calculator.py", line 21, in timeCalculator
self.time = self.file_size / self.speed
TypeError: unsupported operand type(s) for /: 'str' and 'int'
Process finished with exit code 1
如果有关系的话我会用pycharm。 谢谢
float(file_size)
这行行不通。你应该把它分配给它自己,比如:
file_size = float(file_size
)一些改进:
str(size_units)
也有同样的问题。应该是这样:size_units = str(size_units)
size_units.capitalize()
也有同样的问题。应该是
size_units = size_units.capitalize()
相关问题 更多 >
编程相关推荐