python 3.5中如何用input输入多个数值?用什么分分隔开? 还有函数中 怎么把数组作为变量弄进去
def COUNTT(A,B,C):
return A[0]*B[1]*C[2] + B[0]*C[1]*A[2] + C[0]*A[1]*B[2] - C[0]*B[1]*A[2] -B[0]*A[1]*C[2] - A[0]*C[1]*B[2]
M=[0]*3
N=[0]*3
P=[0]*3
Q=[0]*3
for i in range(3):
print ('请依次输入第',i+1,'个方程的x,y,z的系数以及常数项',end='')
M[i],N[i],P[i],Q[i]=input( )
D=COUNTT(M,N,P)
if D==0 :
print ('根不存在或者有无穷多个根')
else:
print ('x=',COUNTT(Q,N,P)/D)
print ('y=',COUNTT(M,Q,P)/D)
print ('z=',COUNTT(M,N,Q)/D)
2.7里面 input那里直接逗号分隔数据就输入进去了
但是到3.5 出现好多问题啊 input不会用了 怎么输都说 too many values
不带分隔倒是可以输进去4个1位数 比如“1113” 这就是 1,1,1,3,我想要两位数就不会了
还有那个函数部分 报错 怎么解决
return A[0]*B[1]*C[2] + B[0]*C[1]*A[2] + C[0]*A[1]*B[2] - C[0]*B[1]*A[2] - B[0]*A[1]*C[2] - A[0]*C[1]*B[2]
TypeError: can't multiply sequence by non-int of type 'str'
求救啊 展开
1、Python中获取键盘值的方式:input()函数,然后打印该数据。
2、也可以指定输入的类型,Python有六个标准数据类型分别是:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)及Dictionary(字典)。
3、input()获取的值Python会默认类型为str。如果直接赋值将会自动默认数据类型。
4、input()函数解释如下:Read a string from standard input. The trailing newline is stripped. 指的是输入之后,按的回车The prompt string, if given, is printed to standard output without a trailing newline before reading input. 。
5、组合其他函数也有不同的用法。例如,eval(input())。
改后的代码如下:(python3中input得到的结果是str类型的,要转换才能用)
#!usr/bin/env python3.5
#-*- coding:utf-8 -*-
def COUNTT(A,B,C):
return A[0]*B[1]*C[2] + B[0]*C[1]*A[2] + C[0]*A[1]*B[2] - C[0]*B[1]*A[2] -B[0]*A[1]*C[2] - A[0]*C[1]*B[2]
M,N,P,Q=[0]*3,[0]*3,[0]*3,[0]*3
for i in range(3):
print('请依次输入第',i+1,'个方程的x,y,z的系数以及常数项:',end='')
M[i],N[i],P[i],Q[i]=[float(items) for items in input().split(',')]
D=COUNTT(M,N,P)
if D==0 :
print ('根不存在或者有无穷多个根')
else:
print ('x=',COUNTT(Q,N,P)/D)
print ('y=',COUNTT(M,Q,P)/D)
print ('z=',COUNTT(M,N,Q)/D)
执行结果:
[willie@bogon zhidao]$ python3 cramer.py
请依次输入第 1 个方程的x,y,z的系数以及常数项:324,0,2,34
请依次输入第 2 个方程的x,y,z的系数以及常数项:22,12,2,0
请依次输入第 3 个方程的x,y,z的系数以及常数项:0,12,23,344
x= 0.003796728971962617
y= -2.7377823208722742
z= 16.384929906542055