已知扑克牌有4种花色:红桃,黑桃,方片,梅花,每种花色有2-9,AJQK共13种面值。
编写程序,创建一个包含52张牌的列表,每个元素为字符串,如"黑桃A"。
创建完成后将列表打乱,打印列表的前13张牌。
参考如下:
import random
color = ["红桃", "黑桃", "方片", "梅花"]
number = ['2', '3', '4', '5', '6', '7', '8', '9,', '10', 'A', 'J', 'Q', 'K']
pai = []
for i in color:
for j in number:
pai.append(i + j) # 生成牌堆
print(pai) # 打印牌堆
random.shuffle(pai) # 将牌堆打乱
for i in range(0, 13):
print(pai[i], end=" ") # 输出前13张牌
效果如下:

- 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7639923
- 这篇博客也不错, 你可以看下聊聊机器学习中的那些花儿:标准化、归一化、正则化、离散化和白化
- 除此之外, 这篇博客: 实验一:鸢尾花数据集分类中的 补充说明: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
- 样本和特征:机器学习中每个个体叫做样本,其属性叫做特征。在本例中,每朵鸢尾花就是一个样本,每朵鸢尾花的花萼长度、宽度、花瓣长度、宽带就是特征。
- 训练数据和测试数据
训练数据:用于构建模型。
- 测试数据:用于评估模型性能。
- 利用scikit-learn中的train_test_split函数将原始数据集分为训练数据和测试数据,75%的数据用作训练集,25%用作测试集。
- scikit-learn中的数据通常用大写的X表示,标签用小写的y表示,f(X)= y, X是函数的输入,是一个二维矩阵,小写的y是输出的一维数组。
- 该函数需要设置random_state,给其赋一个值,当多次运行此段代码能够得到完全一样的结果。若不设置此参数则会随机选择一个种子,执行结果也会因此而不同了。虽然可以对random_state进行调参,但是调参后在训练集上表现好的模型未必在陌生训练集上表现好,所以一般会随便选取一个random_state的值作为参数。
- predict方法进行预测的时候,该函数的输入数据必须是二维数组,因此首先将建立的一维数组转换为二维数组的一行。
- KNN对象的score方法用于计算测试集的精度。