美文网首页
python学习记录——day8

python学习记录——day8

作者: Jason_c8d4 | 来源:发表于2018-03-07 20:56 被阅读0次

今天所学知识点:


今天所学不多,但对于小白来说可能有点难,有点蒙,有点基础的我还是略懂略懂

首先今天想通了昨天的10级台阶:10级台阶,一次走1到3次,一共有多少种走法
和汉诺塔:一共三个柱子,把一个摞着n个盘子从下往上按照从大到小顺序排列柱子,按照相同的规则摆放在另一个柱子上,规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘

emmmmm。。。。只可意会不可言传,就不说代码思路了

  • 列表

列表就是一个保存大量数据的容器
有了列表容器我们可以使用1个变量来保存多个数据
更为重要的是我们可以使用循环对列表中保存的数据进行操作

  • 斐波那契 序列

又称黄金分割数列 - 倒数第二个数除以最后一个数等于黄金分割率

1,1,2,3,5,8,13,21,....

def fib():
    #斐波拉契 序列
    fib_list = [1,1]
    for i in range(2,20):
        fib_list.append(fib_list[i-1]+fib_list[i-2])
    print(fib_list)
  • 列表的CRUD操作

即 creat read update delete
 f =[100, 200, 500] 
    f.append(123)
    f.insert(1,300)
    if 5000 in f:
        f.remove(5000)
    del f[1]
    f.clear()
    print(f.index(500,3,5))
    print(f.pop())
    print(f)
  1. python内置的排序方式默认都是排升序(从小到大)
  2. 如果希望排列成降序(从大到小)可以通过reverse参数来指定
  3. python中的函数几乎都是没有副作用的函数
  4. 调用函数之后不会影响传入的参数
def foo():
    f = ['orange','apple','banana','pitaya','blueberry','internationalization']
    f2 = sorted(f,reverse = False)
    f3 = sorted(f,key=len,reverse = True)
    print(f)
    print(f3)
    print(f2)

两大金句:

时间和空间是不可调和的矛盾

软件和硬件在逻辑上是等效的


  • 用列表的生成表达式语法创建表容器

用这种语法创建列表知否元素已经准备就绪所以需要耗费较多的内存空间

f = [x ** 2 for x in range(1,10)]
  • 列表生成器 这里得到的不是一个列表 而是一个生成器对象

通过生成器可以获取到数据 它不占用额外的空间存储数据
每次需要数据的时候就通过内部的运算得到数据,需要花费额外的时间

f = (x ** 2 for x in range(1, 10))
  • 计算内存占用的函数
import sys
print(sys.getsizeof(f))

  • 计算机内存:

栈(stack) 堆(heap) 静态区

对象 - 放在堆上 - 获取更大的存储空间
变量 - 对象的引用 - 存储的是对象的地址 - 放在栈上
id()函数和is运算符 - 验证身份

a = 1000000000000000999999999
    b = 1000000000000000999999999
    print(id(a))
    print(id(b))
    print(a is b)
    list1 = [x for x in range(1,10)]
    list2 = list1
    list3 = list1[:]
    print(list1 is list2)
    print(list1 is list3)
  • 双色球练习- 6个红色球(1-33)和1个蓝色球(1-16)

def lottery():
    """
    随机选双色球号的函数
    :return: 7个随机号的列表
    """
    qiu = []
    while True:
        hong_qiu = randint(1,33)
        if hong_qiu in qiu:
            continue
        qiu.append(hong_qiu)
        if len(qiu) == 6:
            break
    qiu.sort()
    lan_qiu = randint(1,16)
    qiu.append(lan_qiu)
    return qiu
def print_ball(qiu):
    #输出球号的函数
    for i, ball in enumerate(qiu):
        if i == len(qiu)-1:
            print('|', end=' ')
        print('%02d' % ball, end=' ')
    print()
if __name__ == '__main__':
    num = int(input('请输入机选张数:'))
        for i in range(num):

老师写的

def random_select():
    red_balls = [x for x in range(1, 34)]
    selected_balls = []
    for _ in range(6):
        index = randrange(len(red_balls))
        selected_balls.append(red_balls[index])
        del red_balls[index]
    selected_balls.sort()
    selected_balls.append(randint(1, 16))
    return selected_balls

今天作业不多,就两个,但思路多,有点意思

  • 设计一个函数计算传入的成绩列表的平均分要求去掉一个最高分和一个最低分

def main():
    names = ['刘备','张飞','关羽','曹操','赵云','周瑜','袁绍']
    sorce = []
    for name in names:
        sorce.append(int(input('请输入%s的成绩:' % name)))
    max_sorce = min_sorce = sorce[0]# 最大最小分数数值
    max_index = []# 最大分数索引
    min_index = []# 最小分数索引
    total = 0 # 总分
    for i,val in enumerate(sorce):
        if val > max_sorce:
            max_sorce = val
        elif val < min_sorce:
            min_sorce = val
        total += val
    #判断并列情况
    for i, vall in enumerate(sorce):
        if vall == max_sorce:
            max_index.append(i)
        if vall == min_sorce:
            min_index.append(i)
    for i in range(len(max_index)):
        print('%s是最高分:%d'%(names[max_index[i]],max_sorce))
    for i in range(len(min_index)):
        print('%s是最低分:%d'%(names[min_index[i]],min_sorce))
    print('平均分:%.1f'%((total-max_sorce-min_sorce)/len(sorce)-2))
  • 设计一个函数从传入的列表中找出第二大的元素(只能使用1次循环)

def bar():
    list1 = ['55', '55', '55', '55', '55', '55', '55']
    list2 = sorted(list1,reverse = True)#从大到小排序
    for i in range(len(list2)-1):
        if list2[i] != list2[i+1]:#判断是否有一样大的数
            return list2[i+1]
    return '没有第二大的数'

相关文章

  • python学习记录——day8

    今天所学知识点: 今天所学不多,但对于小白来说可能有点难,有点蒙,有点基础的我还是略懂略懂 首先今天想通了昨天的1...

  • python中的主要数据类型及相关操作

    黑马python学习记录b站麦叔编程学习记录 菜鸟一枚,不喜勿喷 python中主要数据类型 python中的主要...

  • Python学习笔记1

    [Toc] Python学习笔记1 学习廖雪峰老师Python入门教程,非常感谢~记录自己在学习python过程中...

  • python学习_day8

    高级数据类型 序列:在python中,序列就是一组按照顺序排列的值【数据集合】 在python中存在三种内置的序列...

  • Python 算法 第一章 介绍

    题学习使用教材<Python算法教程> Python 算法教程 在此进行记录,方便以后学习,加深记忆.

  • Python学习笔记

    最近在学习python,把学习的过程记录下来,方便以后查看 1. 学习资料 菜鸟教程Python官网Python论...

  • Python学习笔记5-matplotlib

    matplotlib 学习莫烦python,非常感谢~记录自己在学习python过程中的点滴。 matplotli...

  • Python学习笔记2

    学习廖雪峰老师Python入门教程,非常感谢~记录自己在学习python过程中的点滴。 条件判断 在Python程...

  • Python学习笔记6-sklearn

    sklearn 学习莫烦python,非常感谢~记录自己在学习python过程中的点滴。 sklearn 简介 机...

  • Python 学习——每天写点小东西-1

    最近开始学习python,这里就作为学习记录,记录自己的python之路。本条爬虫爬取的是糗事百科的24小时热门里...

网友评论

      本文标题:python学习记录——day8

      本文链接:https://www.haomeiwen.com/subject/lzjsfftx.html