python - 如何在 Python 中创建相反的字符串?
问题描述
我对 Python 有点陌生,我正在尝试使用最基本的轮盘赌策略运行一些测试。所以,我的策略的主要思想是:你赌一个随机的颜色(红色或黑色)。以红色为例。如果轮盘赌的结果也是红色,您将赌注改为黑色。但是,如果球击中了相反的颜色,在我们的示例中为黑色,您无需更改颜色,而是将您的赌注加倍并继续,直到您的颜色出现在轮盘上。所以我设法创建了一个轮盘模拟,但是当我的颜色出现在轮盘上并且我需要更改对面的颜色时,我对这部分有点挣扎。
import random
start_money = 100
coef = 0.001
win = 0
loss = 0
money = start_money
colors = ["red", "red", "red", "red", "red", "red",
"red", "red", "red", "red", "red", "red",
"red", "red", "red", "red", "red", "red",
"black", "black", "black", "black", "black", "black",
"black", "black", "black", "black", "black", "black",
"black", "black", "black", "black", "black", "black", "zero"]
while money > 0:
bet = start_money * coef
if bet > money:
bet = money
money -= bet
bet_color = random.choice(["red", "black"])
result = random.choice(colors)
if result == bet_color:
money += bet * 2
win += 1
else:
loss += 1
games = win + loss
这就是它现在的样子。但是,如果我的赌注赢了,而没有为我可能得到的每个可能结果写条件,我真的不知道如何改变颜色。
解决方案
定义一个返回相反颜色的函数:
def other_color(color):
if color == 'red':
return 'black'
else:
return 'red'
然后当你想改变颜色时,你可以使用
bet_color = other_color(bet_color)
或者您可以使用条件运算符将其作为单行执行:
bet_color = 'red' if bet_color == 'black' else 'black'
推荐阅读
- java - 我可以配置我的 servlet 容器的线程管理吗?
- javascript - 对象数组中上一个最接近的日期
- flutter - 无法在初始化程序中访问实例成员“currentComponentConfiguration”
- visual-studio-code - 防止 VsCode 实时服务器向上滚动
- c# - Xamarin Forms Android Accessibility for StackLayout 子 ContentView 标签文本不起作用
- excel - 根据另一个单元格的值隐藏非连续列 (Excel)
- html - I want paragraph 3 to contiune just below the image
- angular - 如何在循环中迭代组件?
- recursion - OCaml 中的递归调用
- laravel - Laravel - 当它返回时删除不显示 Flash 错误消息