我是靠谱客的博主 机灵手机,最近开发中收集的这篇文章主要介绍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.定义一所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部