python3中,string.punctuation是用作字符串常量的初始化字符,它给出所有的标点集
使用stirng.punctuation,先确保导入字符串函数
import string
语法: string.punctuation
参数:不带任何参数,因为它不是函数。
返回:返回所有标点集。
# 导入字符串库功能 import string # 将标点集存储在可变结果中 str = string.punctuation # 打印标点符号值 print(str)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
choice()方法返回一个列表、元祖或字符串的随机项
choice()方法需要导入random模块,通过random模块静态对象调用该方法
import random
random.choice(seq)
其中seq-可以是一个列表、元祖或字符串
import random str = "fdofsadf4%%%%@@@王" print("打印字符:", random.choice(str_1))
打印字符: %
将序列中的元素以指定的字符连接生成一个新的字符串
语法: ‘sep’.join(seq)
参数说明:
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
a="abcd" list =['a','b','c'] tuple = (('a','b','c')) dict = {'a':1,'b':2,'c':3,'d':4} print(''.join(a)) print(','.join(a)) print('|'.join(list)) print('*'.join(tuple)) print('&'.join(dict))
abcd a,b,c,d a|b|c a*b*c a&b&c&d
基于上述函数及方法,定义生成随机特殊字符串的函数,且可定义字符串的长度
def get_random_special(num,str_range=None): """ 生成随机特殊字符串, num:产生随机字符串的长度, 返回随机字符串,str类型 """ if str_range is None: str_range = string.punctuation return (''.join(random.choice(str_range) for _ in range(int( num))))
PS: for _ in range(int(num))中)_占位符表示不在意变量的值,只是用于循环遍历num次