利用列表生成式,将以上两个元素进行元素搭配,生成一个新的列表lst,存放所有牌面。

假设列表lst_suit=['黑桃','红桃','梅花','方块'],存放了扑克牌的花色。列表lst_face=['3','4','5','6','7','8','9','10','J','Q','K','A','2'],存放了扑克牌的牌面大小,其元素已按照牌面大小排列。试编写程序,完成以下功能。

(1)利用列表生成式,将以上两个元素进行元素搭配,生成一个新的列表lst,存放所有牌面(不考虑大小王)。新列表lst的内容为['3黑桃', '3红桃','3梅花','3方块','4黑桃','4红桃'......'A黑桃', 'A红桃','A梅花','A方块','2黑桃', '2红桃','2梅花','2方块']。

(2)使用random库中的shuffle()函数将列表lst中的元素次序打乱。

(3)(本小题选做)      

用户与计算机进行“抽牌比大小”游戏,游戏规则如下:

①用户输入序号(范围为0~51),程序根据序号在列表lst中读取牌面。

②计算机抽牌由程序自动完成(通过random库的randint()函数随机生成序号)。

③将用户抽取的牌面与计算机抽取的牌面进行大小比较(不考虑花色),并将结果输出。

三种输出内容对照如下:

“恭喜,您赢了!”

“很遗憾,您输了!”

“咱们平手了!”

import random
lst_suit=['黑桃','红桃','梅花','方块']
lst_face=['3','4','5','6','7','8','9','10','J','Q','K','A','2']
lst = [j+i for i in lst_face for j in lst_suit]
print("原数据: ",lst)
random.shuffle(lst)
print("随机: ",lst)

就第一问吧。两个for循环嵌套,拼接字符串,放入新的列表。

1、两个列表合并直接 list1+list2就可以了
2、提示用户输入使用input函数

下面样例出自文章:
https://blog.csdn.net/oSuiYing12/article/details/106211824

该函数接受一个字符串参数,该参数将其显示为提示并返回一个字符串;上面的代码提供了一个提示,等待用户输入。

如果用户键入“Bob”并点击回车,变量名name将被分配给字符串“Bob”

name = input(" 你叫什么名字? ")
#输出: 你叫什么名字? 这个时候如果用户在键盘上输入 Bob
print(name)
#打印出: Bob

注意,用户输入总是str类型的,如果您希望用户输入数字,这一点尤其要注意;因此,在尝试将str用作数字之前,需要先对用户输入的Str转换至具体数字类型,如:

day_str=input("今天几号?")
day_num=int(day_str)
print(day_num+1)
#程序会把用户输入的今天几号,再+1天,如果不把str转化为整数,程序会报错
(也许大家想python可以隐式转换,但是对于程序设计者时时了解当前数据的类型是必要的)

但是,由于用户输入的不可预测性,这里强烈建议使用异常处理程序

在处理用户输入时,使用try / except块来捕获异常。 例如,如果你的代码想要将原始的输入值转换为int,并且用户输入的内容转换过来错误时,这将引发程序抛出ValueError错误