我是靠谱客的博主 机灵手机,最近开发中收集的这篇文章主要介绍1016day3作业:定义函数实现strip和int及float功能、递归函数、字典集合random知识、随机点名系统、点餐系统、可迭代对象,迭代器,生成器、杨辉三角生成器1.知识点整理到有道笔记或者博客上2.编写程序实现strip的功能3.编写程序实现int的功能4.编写程序实现float功能5.== 递归函数 ==:求1~100的和6.字典相关方法有哪些?7.== 集合 ==:set8.{}是字典还是集合? (1)是不是元组?9.可迭代对象,迭代器,生成器10.random的方法11.定义一,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1.知识点整理到有道笔记或者博客上
- 2.编写程序实现strip的功能
- 3.编写程序实现int的功能
- 4.编写程序实现float功能
- 5.== 递归函数 ==:求1~100的和
- 6.字典相关方法有哪些?
- 增加
- 删除
- 修改
- 查
- 字典遍历的两种方法
- 7.== 集合 ==:set
- 遍历
- 增
- 删除
- 交集、并集、差集、补集
- 8.{}是字典还是集合? (1)是不是元组?
- 9.可迭代对象,迭代器,生成器
- 10.random的方法
- 11.定义一个函数,实现一个映射函数的功能,比如一个值传进来,返回一个32位的字符串,如果参数相同则值不变
- 12.== 随机点名程序 ==
- 13.完成中国城市查询系统
- 14.使用一个字典完成一个点餐系统
- 15.== 杨辉三角形的生成器 ==
- 16.集合的并集、差集、交集
1.知识点整理到有道笔记或者博客上
2.编写程序实现strip的功能
strs = 'tashiyigedashiren,tajiushiliuzongyuantt'
def hello(strs,h='all',s=' '):
while h=='l' or h=='all':
if strs[0]==s:
strs = strs[1:]
else:
break
while h=='r' or h=='all':
if strs[-1]==s:
strs=strs[:-1]
else:
break
return strs
print(hello(strs,h='r',s='t'))
结果:tashiyigedashiren,tajiushiliuzongyua
3.编写程序实现int的功能
from functools import reduce
def char_to_number(string):
all_number_dict={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
#以参数string为键,取出all_number_dict里面的值
return all_number_dict[string]
def result_number(x,y):
res = x*10+y
return res
res=list(map(char_to_number,'123'))
result=reduce(result_number,res)
print('最终的结果是:',result,'最终的类型',type(result))
结果:最终的结果是: 123 最终的类型 <class 'int'>
4.编写程序实现float功能
from functools import reduce
from decimal import Decimal
def get_num(n):
dicts = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
return dicts[n]
def get_result(x,y):
return x*10+y
def float1(strs):
data = list(map(get_num,strs))
result = reduce(get_result,data)
return result
strs = '1234.890'
data = strs.replace('.','')
dian_index = strs.find('.')
cha = 10**(len(data)-dian_index)
print(Decimal(float1(data))/cha)
结果:1234.89
5.== 递归函数 ==:求1~100的和
def get_data(n):
if n==1:
return 1
else:
return n+get_data(n-1) #100、99、98....1
print(get_data(100))
结果:5050
6.字典相关方法有哪些?
键不可变,键不可重复
dicts = {'hello':'world',(1,2,3):899,'李白':[{12:33}]}
print(dicts)
结果:{'hello': 'world', (1, 2, 3): 899, '李白': [{12: 33}]}
增加
#方法一
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts['你好'] = '杜甫'
print(dicts)
结果:{'hello': 'world', (1, 2, 3): 98, '李白': [{12: 33}], '你好': '杜甫'}
#方法二
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts.update({'你好': '杜甫'}) #实际上放的是另一个字典
print(dicts)
结果:{'hello': 'world', (1, 2, 3): 98, '李白': [{12: 33}], '你好': '杜甫'}
删除
根据字典的键
#方法一
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
a = dicts.pop('hello')
print(a,dicts)
结果:world {(1, 2, 3): 98, '李白': [{12: 33}]}
#方法二
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
del dicts['hello']
print(dicts)
结果:{(1, 2, 3): 98, '李白': [{12: 33}]}
#方法三
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
print(dicts.clear()) #清空字典
结果:None
修改
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts['hello'] = '柳宗元'
print(dicts)
结果:{'hello': '柳宗元', (1, 2, 3): 98, '李白': [{12: 33}]}
查
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
print(list(dicts.keys()),dicts.values()) #可以把字典转成列表进行取值,就可以用列表的方法了
print(dicts.items())
结果:
['hello', (1, 2, 3), '李白'] dict_values(['world', 98, [{12: 33}]])
dict_items([('hello', 'world'), ((1, 2, 3), 98), ('李白', [{12: 33}])])
字典遍历的两种方法
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
# 方法一
for a,b in dicts.items():
print(a,b)
结果:
hello world
(1, 2, 3) 98
李白 [{12: 33}]
# #方法二
for a in dicts: #直接遍历,遍历出来的是字典的键
print(a,dicts[a])
print(dicts['hello'])
结果:
hello world
(1, 2, 3) 98
李白 [{12: 33}]
world
7.== 集合 ==:set
遍历
sets = {2,2,2,4,4,3,7}
for i in sets:
print(i)
sets = {2,2,2,4,4,3,7}
print(sets[0]) #集合无序
增
sets = {2,2,2,4,4,3,7}
sets.add(8)
print(sets)
结果:{2, 3, 4, 7, 8}
删除
第一种pop()
sets = {2,2,2,4,4,3,7}
sets.pop()
print(sets)
结果:{3, 4, 7}
# 第二种remove(2)
sets = {2,2,2,4,4,3,7}
sets.remove(2)
print(sets)
结果:{3, 4, 7}
# 第三种discard(7)
sets = {2,2,2,4,4,3,7}
sets.discard(7)
print(sets)
结果:{2, 3, 4}
交集、并集、差集、补集
sets = {1,2,3}
set1 = {2,3,4}
# 并集
print(sets|set1)
结果:{1, 2, 3, 4}
# 交集
print(sets & set1)
结果:{2, 3}
# 差集
print(sets-set1)
print(set1-sets)
结果:
{1}
{4}
# 补集
print(sets^set1)
结果:{1, 4}
print(set([1,2,3])) #结果:{1, 2, 3}
print(list(set([1,2,3])) #结果:出错
print(tuple(list(set([1,2,3])))) #结果:(1, 2, 3)
lists = str(tuple(list(set([1,2,3]))))
print(type(lists))
print(lists)
print(lists[2:])
8.{}是字典还是集合? (1)是不是元组?
{}是字典,{1}是集合。(1)不是元组,是int,(1,)是元组。
9.可迭代对象,迭代器,生成器
可迭代对象:所有能被for循环遍历的。如:range(100),{1,2,3,4}
迭代器:能被next函数不断调用,并不断返回下一个值。
生成器:是一种特殊的迭代器,只有方法一和方法二生成的才是生成器
方法一
a = (x for x in range(10))
方法二
def hello():
for i in range(5):
yield i
a = hello()
print(next(a)) #结果:0
10.random的方法
1.random.shuffle(lists)
import random
lists = [1,2,3,4,5,6,7,8,9]
random.shuffle(lists) #打乱列表
print(lists)
结果:[3, 7, 5, 1, 6, 2, 9, 4, 8]
2.random.random()
import random
print(random.random()) #生成0~1之间的随机小数字
结果:0.019600727614542124
3.random.randrange(1,10)
import random
print(random.randrange(1,10)) #1~9里面随机取值,取得是整数
结果:2
4.random.sample(lists,4)
import random
lists = [1,2,3,4,5,6,7,8,9]
print(random.sample(lists,4)) #从lists里面随机取4个值,每次返回结果不一样
结果:[5, 6, 7, 9]
5.random.choice(lists)
import random
lists = [1,2,3,4,5,6,7,8,9]
print(random.choice(lists)) # #从lists里面随机取1个值,每次返回结果不一样
结果:4
6.random.randint(1,10)
import random
import time
print(random.randint(1,10)) #1~9里面随机取1个值,取得是整数
结果:10
11.定义一个函数,实现一个映射函数的功能,比如一个值传进来,返回一个32位的字符串,如果参数相同则值不变
如果参数不同则返回的32位字符串基本完全不同,不会出现2个参数得到同一个返回值的情况。
import random
import string
def generate_random_str(m,randomlength):
'''
string.digits = 0123456789
string.ascii_letters = 26个小写,26个大写
'''
str_list = random.sample(string.digits + string.ascii_letters,randomlength)
random_str = ''.join(str_list)
return m+random_str
print(generate_random_str('输出32位的字符串:',randomlength=32)) #randomlength最大取值为26*2+10=62
结果:输出32位的字符串:IdatpbYiyCo5LU3v9wkGPESThF1762Jr
12.== 随机点名程序 ==
1.第一种random.shuffle(m)
import random
lists = ['student{}'.format(x) for x in range(1,100)] #用列表生成式99个名字
print(lists)
def get_random_name(m,num): #num随机取几个名字
random.shuffle(m)
if len(m)>=num: #把里面顺序打乱就可以取值了,先判断里面的数量
return m[:num] #返回整成的值,从开头取到随机num
else:
return '名字数量不足!'
print(get_random_name(lists,10)) #随便叫什么都行,实际上是把lists传给m
2.第二种random.choice(m)
import random
lists = ['student{}'.format(x) for x in range(1,100)] #用列表生成式99个名字
print(lists)
def get_random_name(m,num):
if len(m) >= num:
lists = []
for i in range(num):
data = random.choice(m)
lists.append(data)
m.remove(data) #数字大了很慢
return lists
else:
return '名字数量不足'
print(get_random_name(lists,20),len(get_random_name(lists,20)))
3.第三种random.randrange(m)
import random
lists = ['student{}'.format(x) for x in range(1,100)] #用列表生成式99个名字
print(lists)
def get_random_name(m,num):
if len(m) >= num:
lists = set([])
while True:
if len(lists) == num:
break
data = random.randrange(len(m))
lists.add(m.pop(data))
return lists
else:
return '名字数量不足'
print(get_random_name(lists,10)) #随便叫什么都行,实际上是把lists传给m
13.完成中国城市查询系统
14.使用一个字典完成一个点餐系统
'''
一级菜单
欢迎来到xxxx饭店
1 热菜
2 凉菜
3 主食
二级菜单(比如用户选择1)
1 红烧肉 18元
2 炒白菜 20元
3 炖冬瓜 60元
要求
1.实现一级菜单和二级菜单的展示,选择对应序号可以由一级菜单进入二级菜单
2.建立购物车,当有用户选择二级菜单菜品的时候,可以输入数量购买多个,购买的菜品及数量记录到购物车
3.进入到二级菜单可以再切换回一级菜单,在一级菜单和二级菜单都可以打印出购物车信息
4.无论是在一级菜单下还是二级菜单下都可以进行结算,结算时打印出购物车中的数据,大致如下:
菜品 价格 数量 单品总价
红烧肉 18 2 36
黄瓜拍蒜 6 3 18
总价 54
5.用户可以删除已经购买的商品
'''
15.== 杨辉三角形的生成器 ==
def hello(m):
lists = [1]
for i in range(m):
yield lists
n = []
for i in range(len(lists)-1):
n.append(lists[i]+lists[i+1])
lists = [1]+n+[1]
for i in hello(10):
print(i)
16.集合的并集、差集、交集
sets = {1,2,3}
set1 = {2,3,4}
# # 并集
print(sets|set1)
#
# # 交集
print(sets & set1)
#
# # 差集
print(sets-set1)
print(set1-sets)
#
# # 补集
print(sets^set1)
最后
以上就是机灵手机为你收集整理的1016day3作业:定义函数实现strip和int及float功能、递归函数、字典集合random知识、随机点名系统、点餐系统、可迭代对象,迭代器,生成器、杨辉三角生成器1.知识点整理到有道笔记或者博客上2.编写程序实现strip的功能3.编写程序实现int的功能4.编写程序实现float功能5.== 递归函数 ==:求1~100的和6.字典相关方法有哪些?7.== 集合 ==:set8.{}是字典还是集合? (1)是不是元组?9.可迭代对象,迭代器,生成器10.random的方法11.定义一的全部内容,希望文章能够帮你解决1016day3作业:定义函数实现strip和int及float功能、递归函数、字典集合random知识、随机点名系统、点餐系统、可迭代对象,迭代器,生成器、杨辉三角生成器1.知识点整理到有道笔记或者博客上2.编写程序实现strip的功能3.编写程序实现int的功能4.编写程序实现float功能5.== 递归函数 ==:求1~100的和6.字典相关方法有哪些?7.== 集合 ==:set8.{}是字典还是集合? (1)是不是元组?9.可迭代对象,迭代器,生成器10.random的方法11.定义一所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复