同志们这个教一下俺!!

已知扑克牌有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张牌

效果如下:

img

  • 这个问题的回答你可以参考下: 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方法用于计算测试集的精度。