为什么我的基本打印语句有效,但我的 f-string 版本会产生语法错误?

问题描述

学习 Python 的早期阶段,并尝试完成 100 天的代码挑战。我正在构建一个粗略的 21 点游戏,但我仍然坚持我确信可能是一个我不认识的非常简单的修复!

这是我目前的代码

import random

cards = [11,2,3,4,5,6,7,8,9,10,10]

players = ["player","dealer"]

players_hands = {}
players_scores = {}


for player in players:

    cards = random.choices(cards,k = 2)
    players_hands[player] = cards
    players_scores[player] = sum(cards)
    
print(players_hands["player"])

print(players_scores["player"])

print(f"Your cards: {players_hands["player"]},current score: {players_scores["player"]}")

print(f"Dealer's first card: {players_hands["dealer"][0]}")**

我想打印 f-string 版本而不是基本的打印语句,但不断收到语法错误并且不知道我做错了什么。

解决方法

您应该检查您是否至少使用了 Python 3.6,其中引入了 f 字符串,而且...

您使用双引号访问字典,这与对字符串使用双引号相冲突。尝试更改为任一

print(f"Dealer's first card: {players_hands['dealer'][0]}")

print(f'Dealer\'s first card: {players_hands["dealer"][0]}')