编写程序,实现以下功能: 1.输入“1”,输出元素为0-9的3次方的列表 2.输入“2”,输出元素为0-9中偶数的3次方的列表 3.输入“3”,输出元素为元组的列表,元组中元素依次是0-9中的奇数和该数的3次方 输入其他字符,输出“结束程序”
时间: 2024-03-10 11:43:28 浏览: 121
好的,以下是Python代码实现您的要求:
```python
while True:
choice = input("请输入数字 1、2 或 3,或其他字符退出程序:")
if choice == "1":
res = [i**3 for i in range(10)]
print(res)
elif choice == "2":
res = [i**3 for i in range(10) if i % 2 == 0]
print(res)
elif choice == "3":
res = [(i, i**3) for i in range(10) if i % 2 == 1]
print(res)
else:
print("结束程序")
break
```
程序通过一个while循环不断接收用户输入的选项,根据选项进行不同的操作,直到用户输入其他字符退出程序。选项1和2使用列表推导式生成列表,选项3使用生成器表达式生成元组的列表。
相关问题
现有一列表 ls = ['the lord of the rings','anaconda','legally blonde','gone with the wind'],编写程序,实现以下功能: 1. 输入“1”,输出元素为0-9的3次方的列表
代码实现如下:
```
ls = ['the lord of the rings', 'anaconda', 'legally blonde', 'gone with the wind']
n = int(input("输入“1”,输出元素为0-9的3次方的列表:"))
if n == 1:
res = [i**3 for i in range(10)]
print(res)
else:
print("输入有误,请输入“1”。")
```
其中,`if`语句判断输入的数字是否为1,如果是,则执行列表推导式生成一个元素为0-9的3次方的列表,并输出;如果不是,则提示输入有误。
1)设计一个子程序,根据提供的N来计算N的3次方。 (2)调用上面编写的N的3次方的子程序,计算data段中com数组里每个元素的3次方,并将结果分别保存在对应的reslut数组单元中。(数据自行设置)
下面是一个示例程序,可以实现您的要求:
```
.model small
.stack 100h
.data
com dw 2, 4, 6, 8, 10
result dw 5 dup(0)
.code
main proc
mov ax, @data
mov ds, ax
; 计算com数组中每个元素的3次方
mov cx, 5
mov si, offset com
mov di, offset result
call calculate_cubed
; 输出计算结果
mov cx, 5
mov si, offset result
mov ah, 02h
print_result:
mov dx, [si]
add dx, 30h
mov dl, [dx]
int 21h
inc si
loop print_result
mov ah, 4ch
int 21h
main endp
; 子程序:计算N的3次方
; 输入:ax = N
; 输出:ax = N的3次方
calculate_cube proc
mul ax ; ax = ax * ax
mul ax ; ax = ax * ax
ret
calculate_cube endp
; 子程序:计算com数组中每个元素的3次方
; 输入:cx = 数组长度
; si = 数组起始地址
; di = 结果数组起始地址
; 输出:reslut数组中保存了com数组中每个元素的3次方
calculate_cubed proc
push bx
push ax
mov bx, si
mov dx, di
loop_start:
mov ax, [bx]
call calculate_cube
mov [dx], ax
add bx, 2
add dx, 2
loop loop_start
pop ax
pop bx
ret
calculate_cubed endp
```
在这个程序中,`calculate_cube` 子程序用于计算一个数的3次方,`calculate_cubed` 子程序用于将 `com` 数组中的每个元素计算3次方并保存到 `result` 数组中。在 `main` 程序中,我们首先将 `com` 数组和 `result` 数组的地址保存在 `si` 和 `di` 寄存器中,然后调用 `calculate_cubed` 子程序即可。最后,我们使用 `int 21h` 中断来输出 `result` 数组中保存的计算结果。
注意,这个程序是基于 16 位 DOS 环境编写的,如果您在其他环境下运行它可能会出现问题。
阅读全文