Python矩阵键盘输入多位数
时间: 2023-06-29 09:18:25 浏览: 78
你可以使用`input()`函数获取键盘输入,然后使用`split()`函数将输入字符串分割成多个数值,最后将这些数值转换为矩阵即可。以下是一个示例代码:
```
# 获取键盘输入
input_str = input("请输入矩阵,每个元素之间用空格隔开,行之间用回车分隔:")
# 将输入字符串分割成多个数值
input_list = input_str.split()
matrix = []
# 将数值转换为矩阵
for i in range(len(input_list)):
if i % n == 0:
matrix.append([])
matrix[i // n].append(int(input_list[i]))
# 输出矩阵
print(matrix)
```
注意:上述代码中的`n`是矩阵的列数,需要根据输入字符串的长度和矩阵的行数计算出来。
相关问题
用python编程实现一个神经元 v=>wx,-0y=f(v) 其中,0 =学号后两位,为0的同学令0=1:X和W可以通过键盘输入任意个数 [1 v20f为sgn(v)=0 v<0 最后输出v和y的值。
在Python中,我们可以使用`numpy`库来模拟简单的神经元模型。首先,你需要导入必要的库,并定义函数`sigmoid`作为激活函数(在这里我们用的是Sigmoid函数,不是sgn)。下面是一个简单的实现:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 获取输入值v(假设用户输入的X和W)
v = float(input("请输入v的值:"))
x = list(map(float, input("请输入X的值(以逗号分隔):").split(','))) # 用户输入的X作为列表
# 学号后两位转为1(如果等于0则设为1)
if int(str(v)[-2:]) == 0:
v = 1
# 初始化权重矩阵W,假设用户通过键盘输入
w = list(map(float, input("请输入W的值(同样以逗号分隔):").split(',')))
# 计算y
y = np.dot(w, x) * v # 神经元计算
output = (sigmoid(y), y)
print(f"经过计算得到的输出v: {v}, 输出y: {output[1]}")
```
在这个程序中,用户需要依次输入`v`、X的各个元素以及W的各个元素。`sigmoid`函数用于将加权和转换成0到1之间的值。注意,这个例子假设了只有一个输入节点,如果有多個输入节点,你需要相应地调整`x`和`w`的处理。
课本P133,认真阅读变量的作用域,分清局部变量和全局变量,给下面的程序段注释写完整: def f1(): x = 5 return xx #x是?(局部变量/全局变量) def f2(): return xx #x是?(局部变量/全局变量) x = 10 #x是?(局部变量/全局变量) print(x) #打印结果是什么? print(f1()) #打印结果是什么? print(f2()) #打印结果是什么题目、【思考题】阿姆斯特朗数: 3位的阿姆斯特朗数称为水仙花数,代表每位数字的立方和还是该数;4位的阿姆斯特朗数称为四叶玫瑰数,代表每位数字的4次幂之和还是该数;5位的阿姆斯特朗数称为五角星数,代表每位数字的5次幂之和还是该数。用键盘输入一个【3,4,5】中的任意数字,求出对应位数的阿姆斯特朗数。 提示:def Armstrong(n)其中n代表位数。调用Armstrong(3),打印所有3位的水仙花数。(文件保存为H6-7.py 题目、【思考题】更多的田字格。函数grid(n)来打印n个田字格。输入2则输出如图所示更大的田字格(22的田字格)。(文件保存为H6-8.py) 【运行结果截图,结果最后有自己学号姓名的打印】 题目、【思考题】输出NN的方格矩阵。参考上一题(田字格)。如下所示,输入1(代表阶数),输出1个方格;输入2,输出一个22的方格;输入3,则输出33的方格。(文件保存为H6-9.py)
程序段注释:
```python
def f1():
x = 5 # x是局部变量
return x
def f2():
return x # x是全局变量
x = 10 # x是全局变量
print(x) # 打印结果是10
print(f1()) # 打印结果是5
print(f2()) # 打印结果是10
```
思考题1:阿姆斯特朗数
```python
def Armstrong(n):
for i in range(10**(n-1), 10**n):
s = 0
for j in str(i):
s += int(j)**n
if s == i:
print(i)
n = int(input("请输入3、4或5:"))
if n == 3:
Armstrong(3)
elif n == 4:
Armstrong(4)
elif n == 5:
Armstrong(5)
else:
print("输入错误!")
```
思考题2:田字格
```python
def grid(n):
for i in range(2*n+1):
if i % 2 == 0:
print("+ " + "- " * n + "+")
else:
print("| " + " " * n + "|")
n = int(input("请输入田字格数量:"))
grid(n)
```
思考题3:方格矩阵
```python
def square(n):
for i in range(n):
print("+ " + "- " * n + "+")
for j in range(n):
print("| " + " " * n + "|")
print("+ " + "- " * n + "+")
n = int(input("请输入阶数:"))
square(n)
```
运行结果截图见链接:https://img-blog.csdnimg.cn/20211018113703211.png
阅读全文