1 # -*-coding:utf-8-*-
2 __author__ = 'Deen'
3 '''
4 题目描述:
5 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
6 '''
7 '''
8 import random
9
10
11 '''
12 '''
13 import string
14 import random
15
16
17 def coupon_creator(digit):
18 coupon = ''
19 for word in range(digit):
20 coupon += random.choice(string.ascii_uppercase + string.digits)
21 return coupon
22
23
24 def two_hundred_coupons():
25 data = ''
26 count = 1
27 for count in range(200):
28 digit = 12
29 count += 1
30 data += 'coupon no.' + str(count) + ' ' + coupon_creator(digit) + '\n'
31
32 return data
33
34
35 coupondata = open('coupondata.txt', 'w')
36 coupondata.write(two_hundred_coupons())
37 '''
38 '''
39 >>> import string
40 >>> string.ascii_letters
41 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
42 >>> string.ascii_lowercase
43 'abcdefghijklmnopqrstuvwxyz'
44 >>> string.ascii_uppercase
45 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
46 >>> string.digits
47 '0123456789'
48 >>> string.hexdigits
49 '0123456789abcdefABCDEF'
50 >>> string.letters
51 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
52 >>> string.lowercase
53 'abcdefghijklmnopqrstuvwxyz'
54 >>> string.uppercase
55 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
56 >>> string.octdigits
57 '01234567'
58 >>> string.punctuation
59 '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
60 >>> string.printable
61 '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
62 >>> string.whitespace
63
64 '''
65 '''
66 random.random()用于生成
67 用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成随机数
68 ?
69 1
70 n: a <= n <= b。如果 a <b, 则 b <= n <= a。
71 ?
72 1
73 2
74 3
75 4
76 5
77 6
78 print random.uniform(10, 20)
79 print random.uniform(20, 10)
80 #----
81 #18.7356606526
82 #12.5798298022
83 random.randint
84 用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,Python生成随机数
85 ?
86 1
87 2
88 3
89 print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20
90 print random.randint(20, 20) #结果永远是20
91 #print random.randint(20, 10) #该语句是错误的。
92 下限必须小于上限。
93 random.randrange
94 从指定范围内,按指定基数递增的集合中 ,这篇文章就是对python生成随机数的应用程序的部分介绍。
95 随机整数:
96 >>> import random
97 >>> random.randint(0,99)
98 21
99 随机选取0到100间的偶数:
100 >>> import random
101 >>> random.randrange(0, 101, 2)
102 42
103 随机浮点数:
104 >>> import random
105 >>> random.random()
106 0.85415370477785668
107 >>> random.uniform(1, 10)
108 5.4221167969800881
109 随机字符:
110 >>> import random
111 >>> random.choice('abcdefg&#%^*f')
112 'd'
113 多个字符中选取特定数量的字符:
114 >>> import random
115 random.sample('abcdefghij',3)
116 ['a', 'd', 'b']
117 多个字符中选取特定数量的字符组成新字符串:
118 >>> import random
119 >>> import string
120 >>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).r
121 eplace(" ","")
122 'fih'
123 随机选取字符串:
124 >>> import random
125 >>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
126 'lemon'
127 洗牌:
128 >>> import random
129 >>> items = [1, 2, 3, 4, 5, 6]
130 >>> random.shuffle(items)
131 >>> items
132 [3, 2, 5, 6, 4, 1]
133 '''
134
135 # 改进
136
137 import string
138 import random
139
140 # n为生成的个数,length为生成的长度
141 def get_poll_codes(n, length):
142 poll_codes = list()
143 for i in range(n):
144 poll_code = ''
145 for j in range(length):
146 poll_code += random.choice(string.uppercase + string.digits)
147 if poll_code in poll_codes:
148 pass
149 else:
150 poll_codes.append(poll_code)
151 n = 0
152 with open('poll_codes.txt', 'w') as fp:
153 for i in poll_codes:
154 n += 1
155 fp.write(str(n) + ':' + i + '\n')
156 fp.close()
157
158
159 if __name__ == '__main__':
160 get_poll_codes(200, 10)

python练习册 每天一个小程序 第0001题的更多相关文章

  1. python练习册 每天一个小程序 第0013题

    # -*-coding:utf-8-*- ''' 题目描述: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-) 地址: http://tieba.baidu.com/p/21 ...

  2. python练习册 每天一个小程序 第0007题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但 ...

  3. python练习册 每天一个小程序 第0000题

    PIL库学习链接:http://blog.csdn.net/column/details/pythonpil.html?&page=1 1 #-*-coding:utf-8-*- 2 __au ...

  4. python练习册 每天一个小程序 第0010题

    # -*-coding:utf-8-*- ''' 题目描述: 使用 Python 生成类似于下图中的字母验证码图片 思路: 运用PIL库加random 随机字母进行生成 ''' import rand ...

  5. python练习册 每天一个小程序 第0009题

    1 ''' 2 题目描述: 3 找出一个html文件中所有的url 4 5 思路 : 6 利用正则表达式进行匹配 7 8 ''' 9 10 11 import re 12 13 14 with ope ...

  6. python练习册 每天一个小程序 第0008题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 一个HTML文件,找出里面的正文. 6 7 思路: 8 利用Beautiful ...

  7. python练习册 每天一个小程序 第0006题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目描述: 5 你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都 ...

  8. python练习册 每天一个小程序 第0005题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目说明: 你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小 ...

  9. python练习册 每天一个小程序 第0012题

    # -*-coding:utf-8-*- def test(content): text = content flag = 0 with open('filtered_words.txt') as f ...

随机推荐

  1. MyBatis加强(4)~mybatis 插件开发

    一.插件介绍[动态代理] 1.插件[动态代理]:mybatis 允许在已经映射的语句的执行过程的某个时机进行拦截增强的机制. 2.mybatis中的组件动态代理的运用: MyBatis 在四大组件对象 ...

  2. 【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题

    问题描述 App Service for Linux 资源创建完成后,通过FTP方式把 .jar包(logdemo.jar)包上传到 /site/wwwroot/ 文件夹后,在App Service的 ...

  3. 五、MyBatis缓存初体验

    缓存就是内存中的数据,常常来自对数据库查询结果的保存,使用缓存, 我们可以避免频繁的与数据库进行交互, 进而提高响应速度. 一级缓存初体验(session,默认打开) 同一查询执行两次以上:selec ...

  4. CentOS8上安装MySQL

    没有选择Win10上安装MySQL,个人感觉比较傻瓜式.同时相对Win10操作系统,个人更熟悉Unix/Linux操作系统,所以选择在CentOS8上安装MySQL数据库. 还是熟悉的yum安装,前提 ...

  5. GIT学习——天天都在用Git,那么你系统学习过吗?(学习过程)

    你系统学习Git了吗? 学习圣思园张龙老师的Git课程. 使用Mac编程的好处,不是因为Mac长得好看 Git内容学习准备 如果你还没有用Git,就不要写代码了. GitHub仓库的使用. 新员工入职 ...

  6. 本塔科技借力VR Engine,提供更优质的3D VR内容

    本文分享于华为开发者论坛<本塔科技借力HMS Core VR Engine,提供更优质的3D VR视频内容> 本塔科技致力于为影视行业提供优质的3D VR视频内容,追求稳定.观看感舒适.良 ...

  7. ajax读本地文件

    前置条件: 1. 编辑器,我用的是HbuilderX,解压即食,非常美味,点击传送门. 2. jQuery.min.js,点击传送门. 简单的项目目录: a. test.html内容 <!DOC ...

  8. 攻防世界--神奇的Modbus

    使用Wireshark在数据包中寻找flag flag是明文形式存储wireshark输入modbus过滤并追踪tcp流追踪tcp流 得到结果:ctf{Easy_Modbus} (虽然在wiresha ...

  9. RFC3918组转发矩阵测试——网络测试仪实操

    一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...

  10. 实例演示:Excel实现数据更新获取,并根据公式计算后展示

    ​ 我们数据库中有一些明细数据,希望我们可以使用Excel的公式,对报表数据进行,最后展示在自定义的行列固定报表中. 如下图:从左侧表中获取大类名称为饮料.海鲜.日用品,从2016/11/11到201 ...