python入门教程NO.6 用python做个简单的彩票号码统
2020-04-16 本文已影响0人
python攻城狮
python入门教程
python入门教程NO.6 用python做个简单的彩票号码统计分析工具
本文涉及的python基础语法是:字典、集合及for循环
字典的定义
-
字典
也是一种可变的容器,它可以存储任意的类型对象。 -
字典
中的每个key: value
键值对用冒号 : 分割,不同键值对之间用逗号 , 分割,整个字典包括在花括号{}
中 ,示例如下
dic = {key1 : value1, key2 : value2, key3 : value3}
python字典
的健
必须不可变(可以是字符串、数字、元组,不能是列表),如果一个字典内部有相同的健,那么后面的健值会替换前面的同名健值
dic = {'a': 5, 'b': 8, 'c': 9 , 'a': 0}
print(dic['a'])
#输出:0
print(dic)
#输出:{'a': 0, 'b': 8, 'c': 9}
如果用不在字典里面的健获取数据,会发生如下的错误
dic = {'a': 5, 'b': 8, 'c': 9 , 'a': 0}
print(dic['ae'])
#输出:
Traceback (most recent call last):
File "D:/test/demo.py", line 2, in <module>
print(dic['ae'])
KeyError: 'ae'
字典的增删改查
dic = {'name': 'python攻城狮' , 'gender': '男' , 'hobby': '写代码'}
#通过赋值的方式,增加新的键值对
dic['age'] = 28
print(dic)
#输出:{'name': 'python攻城狮', 'gender': '男', 'hobby': '写代码', 'age': 28}
#通过del方法,可以删除指定的键值对
dic = {'name': 'python攻城狮', 'gender': '男', 'hobby': '写代码', 'age': 28}
del dic['gender']
print(dic)
#输出:{'name': 'python攻城狮', 'hobby': '写代码', 'age': 28}
#可以直接通过赋值的方式修改指定健的值
dic = {'name': 'python攻城狮', 'hobby': '写代码', 'age': 28}
dic['age'] = 30
print(dic['age']) #输出:30
#查找字典里面健的值
dic = {'name': 'python攻城狮', 'hobby': '写代码', 'age': 28}
print(dic['name']) #输出:python攻城狮
#判断是否存在该健
dic = {'name': 'python攻城狮', 'hobby': '写代码', 'age': 28}
if 'interest' in dic:
print('True')
else:
print('False')
#输出:False 即表明该健不在字典dic中,if...else...条件判断语句,我们后面会讲到
字典的内置函数和方法
Python字典
包含了以下内置函数:
函数 |
描述 |
---|---|
cmp(dic1, dic2) | 比较两个字典元素。 |
len(dic) | 计算字典元素个数,即键的总数。 |
str(dic) | 输出字典可打印的字符串表示。 |
type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
Python字典
包含了以下内置方法:
函数方法 |
描述 |
---|---|
dic.clear() | 删除字典内所有元素 |
dic.copy() | 返回一个字典的浅复制 |
dic.fromkeys(seq[, val]) | 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
dic.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
dic.has_key(key) | 如果键在字典dict里返回true,否则返回false |
dic.items() | 以列表返回可遍历的(键, 值) 元组数组 |
dic.keys() | 以列表返回一个字典所有的键 |
dic.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dic.update(dict2) | 把字典dict2的键/值对更新到dict里 |
dic.values() | 以列表返回字典中的所有值 |
pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
popitem() | 返回并删除字典中的最后一对键和值。 |
集合
集合(set)是一个无序且不重复元素序列,可以使用{}
或者set()
来创建集合,但是要注意的是:
创建空集合必须使用set()
,因为{}
创建的是空字典
#创建集合
a = {1, 3 , 5 , 8}
或
a = set('abcbacf')
print(a) #输出:{'b', 'f', 'a', 'c'} 当我们想要去掉一段序列重复项时可以使用集合
python两个集合之间的运算:假定我们现在有两个集合,分别是a = {1, 5 ,3 , 2},b = { 4 , 6 , 3 , 2}
#求a与b的交集(集合a和b中都包含了的元素)
print(a & b) #输出:{2, 3}
#求a与b的并集(集合a或b中包含的所有元素)
print(a | b) #输出: {1, 2, 3, 4, 5, 6}
#求a与b的差集(集合a(b)中包含而集合b(a)中不包含的元素)
print(a - b) #输出:{1, 5}
print(b - a) #输出:{4, 6}
#求a与b的对称差集(不同时包含于a和b的元素)
print(a ^ b) #输出:{1, 4, 5, 6}
集合的函数方法
方法 |
描述 |
---|---|
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |
#1、添加元素
a = {0, 1}
a.add(8)
print(a) #输出:{0, 1, 8}
#2、移除元素
a ={0, 1, 8}
a.remove(0)
print(a) #输出:{1, 8}
#其他方法大家可以一一尝试一下,了解他们的用法
for循环
Python中for循环可以循环遍历任何序列的项目,例如字符串、列表、元组、字典等,语法结构为for...in...:
#遍历一个字符串
a = 'hello攻城狮'
for i in a: #这里的i可以使用任何变量代替
print(i)
#输出:
h
e
l
l
o
攻
城
狮
#遍历一个列表
lists = [1, 8 , 9 , 5]
for e in lists:
print(e)
#输出:
1
8
9
5
#遍历一个字典
dic = {'name': 'python攻城狮', 'hobby': '写代码', 'age': 28}
for i in dic:
print(i)
#输出:直接遍历字典,会默认遍历字典的健
name
hobby
age
#遍历字典的值
dic = {'name': 'python攻城狮', 'hobby': '写代码', 'age': 28}
for i in dic.values():
print(i)
#输出:
python攻城狮
写代码
28
#遍历字典的键值对
dic = {'name': 'python攻城狮', 'hobby': '写代码', 'age': 28}
for i in dic.items():
print(i)
#输出:
('name', 'python攻城狮')
('hobby', '写代码')
('age', 28)
用python做个彩票统计分析工具
- 假如我们一共有5组连续的彩票开奖号码,他们分别是
期数 | 开奖号码 |
---|---|
1 | '1', '5' , '9' , '3' , '7' |
2 | '4', '2' , '1', '3' , '6' |
3 | '2', '3' , '8' , '4' , '9' |
4 | '9', '3' , '2' , '4' , '5' |
5 | '5', '3' , '6' , '8' , '1' |
- 我们需要统计一下这5期彩票中,每个号码出现的次数,并将次数作为号码的值,以字典的形式打印出来
请根据要求,开始你的编程吧!