从用户输入计算Python公式

时间:2013-12-12 18:31:15

标签: python python-2.7 formula

我是Python 2.7的新手,我不知道哪种结构最适合这个脚本。

我认为我的问题是我不知道如何让Python存储用户输入以供将来在脚本中使用..

整个剧本。

# -*-coding: utf-8 -*-
import sys
from sys import argv

prompt = '>'

# user inputs.. values to be used in calculation
ri = int(input("inre bockningsradie i mm:"))
L1 = int(input("längd på plåt som 'står':"))
L2 = int(input("längd på plåt som 'ligger':"))
t = int(input("tjocklek på plåt:"))
a1 = int(input("bockningsvinkel i grader:"))

# 
L1_total = L2 - t - ri
L2_total = (L2, - t, - ri,)
Lb_total = multiply(ri, pi) / 180
rn = multiply(t, k) + rn
k = divide(r, t)
L_total = ( L1, + L2, + Lb_total)

print "beräkning av ämneslängd för kantbokning"
print "ämneslängden är: ", L_total 

符文时间错误:     运行时错误:

z@z ~/Documents/scripts_r_w $ python amneslangd.py

inre bockningsradie i mm:213
längd på plåt som 'står':123
längd på plåt som 'ligger':123 
tjocklek på plåt:123
bockningsvinkel i grader:123

Traceback (most recent call last):
File "amneslangd.py", line 18, in <module>
L1_total = L2 - t - ri
TypeError: unsupported operand type(s) for -: 'int' and 'str'

公式来源:

可以在http://s30.postimg.org/gq2vqzz1b/formula.jpg

找到

--------------------------------- MISSION COMPLETE ------------ -----------------------------

感谢您的投入!解决第一个问题后,会产生更多错误!除了运行时错误,我在那里发现了一些原理图错误。但是下面是按预期工作的版本..有点清理......

附带问题:有没有办法让浮点数(输入)也接受逗号和句点,如0,72而不是0.72?

# -*-coding: utf-8 -*-
import sys
from sys import argv

print "\n"
print "\tScript som räknar ut ämneslängden för kantbockning i plåt!"
print "\n\tOBS. Korrektionsfaktorn i tabell kanske står som: 0,72"
print "\tDu ska skriva in värdet som 0.72"
# line below means exchange comma(,) for a period(.)..
print "\tAlltså, byt ut comma(,) mot en punkt(.)!" 
print "\n"

# user inputs.. values to be used in calculation
ri = int(input("(ri) inre bockningsradie i mm: "))
L1 = int(input("(L1) vertikal kanthöjd: "))
L2 = int(input("(L2) horizontel kanthöjd: "))
t = int(input("(t) tjocklek på plåt: "))
a1 = int(input("(a) bockningsvinkel: "))
k = ri / t

# prints k as integer so user can look up k1 from a table
print "\nVad är (k)korrekktionsfaktor i kolumn: %d, rad: %d?" % (k, a1)
# below prompts the user for the value he got when looking up "k" from table
k1 = float(input("\nk = "))


l1_total = L1 - t - ri  # returns l1
l2_total = L2 - t - ri  # returns l2
rn = (t * k1) / 2 + ri 
lb_total = (rn * 3.14 * a1) / 180 # returns lb
L_total = (l1_total + l2_total  + lb_total) # returns L

print "\n\t(L)Ämneslängden är: ", L_total
print "\n"

1 个答案:

答案 0 :(得分:0)

错误告诉您无法在整数和字符串之间进行数学运算:

L1_total = L2 - t - ri

您必须检查输入值并在必要时将它们转换为相同的类型,然后对它们执行操作。