python的string模块(字符)和random模块的使用_import string在python中的用法-程序员宅基地

技术标签: python  开发语言  

一、模块string的简单使用

import string #导入string模块,获取大小写字母、特殊字符、数字等

#获取大小写字母abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_letters)
#获取大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_uppercase)
#获取小写字母abcdefghijklmnopqrstuvwxyz
print(string.ascii_lowercase)
#获取特殊字符 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
print(string.punctuation)
#获取数字 '0123456789'
print(string.digits)

二、random模块的使用

import random
s="abcdefg"
s1 = random.choice(s)  #随机获取其中的一个元素
s2 = random.sample(s,3) #随机获取其中的几个元素,结果是列表
s4 = random.randint(1,100) #获取一个指定范围的随机数
#随机获取列表的值,并拼接成字符串
s3=random.sample([0, 1, 2, 3, 4, 5, 6, 7, 8, 9],3)
s3.append(s1)
print(s3)
print("-".join(["A","1","9"])) #列表里面是str,不能是int类型;拼接符自定义

三、简单练习一下:

'''
功能:生成车牌号
备注:此处不适用random.sample(),因为车牌的数字或字母可以重复
'''
import random #导入随机数模块
import string
# s = "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789"
s = string.ascii_uppercase+string.digits
lst=[]
for i in range(5):
    s0 = random.choice(string.ascii_uppercase)
    s1 = random.choice(s)
    lst.append(s1)
    num0 = "".join(lst)  #列表拼接成字符串
    num = f"闽{s0}-{num0}"
print(num)  #闽K-RSLL8

#注意:以上只是简单的模拟车牌的生成,为了练习random和string模块。并为考虑车牌的实际编制规则
'''
功能:年会抽奖程序

张三科技有限公司有300名员工,开年会抽检,奖品如下:
一等奖3名:泰国七日游
二等奖6名:iphone手机一台
三等奖30名:保温杯1个
'''
import random
lst=list(range(1,301))
for i in range(30):
    num = random.choice(lst)
    print(f"恭喜{num}获得了第三等奖! 获得保温杯1个")
    lst.remove(num)
for j in range(6):
    num = random.choice(lst)
    print(f"恭喜{num}获得了第二等奖! 获得iphone手机一台")
    lst.remove(num)   
for k in range(3):
    num = random.choice(lst)
    print(f"恭喜{num}获得了第一等奖! 泰国七日游")
    lst.remove(num)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/you7110/article/details/122909545

智能推荐

c++关联容器详细介绍_c++的关联容器-程序员宅基地

文章浏览阅读1.3k次,点赞45次,收藏22次。关联容器是C++标准库的一部分,用于存储和管理具有键值对的数据元素。与顺序容器(如vector和list)不同,关联容器的主要特点是它们能够快速查找特定键的值。这是因为关联容器内部使用了高效的数据结构(如二叉树或哈希表)来组织数据。std::set:一个集合,包含唯一元素,按特定顺序排序。std::map:一个映射,包含键值对,其中键是唯一的。std::multiset和std::multimap:类似于set和map,但允许键的重复。_c++的关联容器

el-select下拉框选项的样式修改(背景色、hover、字体等)_el-select hover-程序员宅基地

文章浏览阅读5.5w次,点赞30次,收藏144次。一:如何修改el-select下拉框中选项的样式,网上的方法一般有两种:1.找到下拉框的类名,写一个全局的样式。2.通过/deep/来修改.el-select-dropdown__item的样式内容3.通过popper-class设置的类名添加样式以上几种方式中,第二种和第三种是无法生效的,而第一种形式虽然可以,但是会造成样式污染,在打包上传到服务器的时候,其他地方的样式可能会因此发生改变。二:问题分析上图中显示的是当选中el-select的选项时页面的结构,选项的容器并不在挂载的div#ap_el-select hover

CDH配置hive.exec.dynamic.partition.mode_cdh hive.exec.dynamic.partition.mode-程序员宅基地

文章浏览阅读904次。cdh配置hive.exec.dynamic.partition.mode看图说话,我是用的server2,所以根据自己情况配置_cdh hive.exec.dynamic.partition.mode

matlab print用法,使用Matlab:错误使用 mprint (line 231) Wrong # rnames in mprint,怎么解决...-程序员宅基地

文章浏览阅读813次。请问大牛们:在使用Matlab:错误使用 mprint (line 231) Wrong # rnames in mprint,怎么解决?程序如下:T=12;N=10;W=normw(W1);y=A(:,[23]);x=A(:,[17:22]);for t=1:Tt1=(t-1)*N+1;t2=t*N;wx(t1:t2,:)=W*x(t1:t2,:);endxconstant=ones(N*T,1..._matlab print报错

Java substring用法_java substring的用法-程序员宅基地

文章浏览阅读467次。public String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,一直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。示例: "ham_java substring的用法

fopen,fopen_s,_wfopen_s与_fsopen, _wfsopen的区分_fopen_s和fopen的区别-程序员宅基地

文章浏览阅读1.5w次,点赞2次,收藏13次。C++做项目的过程中,需要实现文件打开保存的一个功能,当我对文件tmp.dat进行写操作以后,想要第二次对此文件进行写操作,此时用fopen_s,_wfopen_s均出现返回int error = 13也就是EACCES (Permission denied)的错误。而由于项目是Unicode编码,没办法用fopen进行文件操作(其实只要在预编译中加入_CRT_SECURE_NO_WARN_fopen_s和fopen的区别

随便推点

React vscode 创建 react 项目流程【超详细】-程序员宅基地

文章浏览阅读1.7w次,点赞27次,收藏116次。文章目录一、安装node二、配置淘宝镜像三、配置 vscode(win10)四、全局安装脚手架五、创建项目一、安装node请在官网下载安装:https://nodejs.org/zh-cn/vscode 中 点击 ( ctrl + `) 调出终端输入指令node -v,能显示版本号,说明 node 已经装好了输入指令npm -v,能显示版本号,说明 npm 可以使用了点击链接查看图文教程https://blog.csdn.net/qq_45677671/article/detail_react vscode

树状数组基本操作_树状数组两个操作-程序员宅基地

文章浏览阅读743次。树状数组的一维和二维_树状数组两个操作

突袭HTML5之WebSocket入门3 - 通信模型socket.io-程序员宅基地

文章浏览阅读55次。为什么需要socket.io? node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一,为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验,于是socket.io诞生。 socket.io设计的目标是支持任何的浏览器,任何Mobile设备。目前支持主流的PC浏览器(IE,Safari,Chrome,..._/package-my/msg-html5/msg-html5?url=ht

DB2插入引号字符的问题_db2单引号入库-程序员宅基地

文章浏览阅读2.8k次。 对于需要插入引号字符的问题,可以通过下面的方法解决:   1. 如果需要输入单引号,可以连续输入两个单引号, 则会插入一个单引号到表中, 第一个单引号会被作为转义符, 如:  db2 insert into sales(region) values()  则会插入一个单引号到字段region中。  db2 insert into sales(region) value_db2单引号入库

(三)k8s----etcd运行机制,数据备份/恢复-程序员宅基地

文章浏览阅读348次。文章目录三. etcd运行机制启动脚本参数查看成员信息验证当前etcd所有成员状态查看etcd数据信息etcd增删改查数据etcd数据watch机制四. etcd数据备份与恢复机制etcd v3版本数据备份与恢复五. 网络通信机制--CNI1. calico查看pod路由走向=2. flannelflannel pod状态VxLAN Directrouting=Flannel不同node上的pod的通信流程三. etcd运行机制etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个

在ubuntu 环境安装qt出现的问题_make warning qconfig.pri-程序员宅基地

文章浏览阅读1k次。1. 第一个QT问题: has modification time 18271224 s in the future具体问题如下图和文字:/Qt5.5.0/5.5/gcc_64/mkspecs/qconfig.pri’ has modification time 18271224 s in the future问题原因:qconfig.pri’ has modification time 18271224 s in the future 这句话中文意思就是qconfig.pri 文件的时间比较早_make warning qconfig.pri

推荐文章

热门文章

相关标签