show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次制作了彩色奇偶
- 奇数偶数是双分支
- 任意自然数
- 不是奇数
- 就是偶数
- 根据奇偶变色
- 运算和判分
- 十以内加法练习与判分
- 我想做一个十以内加减法的练习与判分
- 怎么做呢???🤔
- 首先加减是随机的
- 需要得到一个随机的值
- 根据他得到加法还是减法
- 而且减法有个问题
- 就是被减数一定得大于减数
- 否则负数处于未知领域
- 得对这两个数进行排序
- 一定要避免结果出现负数
- 一定要求n1 > n2
- 先排序
- 再按排序结果赋值
- 就可以保证 n1 > n2
- 再按排序结果赋值
- 这样数字的大小就可以控制了
import random
n1 = random.randint(0,9)
n2 = random.randint(0,9)
op = random.randint(0,1)
if op == 0:
result = n1 + n2
print(str(n1) + "+" + str(n2) + "=",end="")
else:
l = [n1,n2]
l.sort()
n2,n1 = l
result = n1 - n2
print(str(n1) + "-" + str(n2) + "=",end="")
answer = int(input())
if result == answer:
print("\033[38;5;10m ✔ \033[0m")
else:
print("\033[38;5;9m ✘ \033[0m")
- 代码能跑
- 能简化一下吗?
- 变量的声明最好都在开头部分
- 下面的第一句导入语句中
- 把 import 变成 from ... import
- 因为 randint 函数是在 random 这个包里面的
- 所以 from random import randint
- 就可以直接引用 randint 这个函数了
from random import randint
n1 = randint(0,9)
n2 = randint(0,9)
op = randint(0,1)
result = 0
if op == 0:
result = n1 + n2
print(str(n1) + "+" + str(n2) + "=",end="")
else:
l = [n1,n2]
l.sort()
n2,n1 = l
result = n1 - n2
print(str(n1) + "-" + str(n2) + "=",end="")
answer = int(input())
if result == answer:
print("\033[38;5;10m ✔ \033[0m")
else:
print("\033[38;5;9m ✘ \033[0m")
- result 在前面进行声明并赋值
- 代码好像更长了
- 继续优化
- 优化之前我们另开一个终端
- 并且学习一种新东西
- c 语言有一种三目运算符
- 三目指的是总共有三个因素决定最终结果
- 官方文档好像是可以有的
- 好像是可以做的
- 那怎么根据 0 或 1 的值动态地获得加号或者减号呢?
- 这种方式是可以获得 op 的
- 但是如何整合到我们的代码中呢?
- 如果是减法排序
- 加法不排序
- 表达式的值通过 eval 得到
- 运行顺利
- 我突然又有了新主意
- 我想随机得到一个灰阶[232,255]
- 然后写上"道"
- 前景色根据灰阶的颜色得到
- 243 以下含 243 前景色为白色\033[38;5;15m
- 否则为黑色\033[38;5;0m
- 这个可以做么?
- 走起来
- 好像还是可以的
- 能做成三目表达式的形式么?
- 做是可以做的
- 但是有点啰嗦
- 每次字符串的加法是否必要呢?
- 简化之后功能是不受到影响的
- ok
- 这次研究了 三目运算符
- 根据条件是否满足
- 可以得到不同的结果值
- 三目运算符都可以转化 if 语句
- 如果我有想有三个分支怎么办??🤔
- 下次再说 👋