学习Python第四天

学习Python第四天

课后作业

  • 第一题
import random#导入包
answer = random.randrange(1, 101)#使用函数导入一个随机数
count = 0#定义一个初始变量
while True:
    user_answer = int(input('你猜是多少'))#输入你要猜的数
    count += 1
    if answer > user_answer:#分枝
        print('稍微大一点')
        pass
    elif answer < user_answer:分枝
        print('稍微小一点')
    else:
        print(f'恭喜你猜对了')#猜对了就用break终止循环
        break
    if count == 7:
        print('智商余额不足')

  • 第二题

    #定义变量
    max_value = 0
    total, count = 0, 0
    min_value = 100
    while count < 10:
        a = int(input('请输入一个整数'))
        if 0 < a <= 100:# 规范输入范围,在范围内才算输入次数
            count += 1
            total += a
            if a >= max_value:#输入的只大于最大值,则将输入的值赋值给最大值
                max_value = a
            if a <= min_value:# 输入的只小于最小值,则将输入的值赋值给最小值
                min_value = a
        else:#不在范围内重新输入,不算次数
            print('无效输入')
    avg = total / 10
    print(f'最大值为{max_value},平均数为{avg}, 最小值为{min_value}')
    
    

    课堂练习

    • 摇一颗骰子,摇60000次,计算各点数出现的次数

    • 摇两颗骰子,摇60000次,计算两个骰子点数和出现的次数

      题目不难,主要是复杂,流程太多

      骰子数越多越要命

    import random
    l1 = l2 = l3 = l4 = l5 = l6 = 0
    for _ in range(1, 60001):
        a1 = random.randrange(1, 7)
        if a == 1:
            l1 += 1
        elif a == 2:
            l2 += 1
        elif a == 3:
            l3 += 1
        elif a == 4:
            l4 += 1
        elif a == 5:
            l5 += 1
        elif a == 6:
            l6 += 1
    print(f'输出1点{l1}次, 输出2点{l2}次, 输出3点{l3}次, 输出4点{l4}次, 输出5点{l5}次, 输出6点{l6}次')
    
    
    
    import random
    l1 = l2 = l3 = l4 = l5 = l6 = l7 = l8 = l9 = l10 = l11 = l12 = 0
    for _ in range(1, 60001):
        a1 = random.randrange(1, 7)
        a2 = random.randrange(1, 7)
        a = a1 + a2
        if a == 2:
            l1 += 1
        elif a == 3:
            l2 += 1
        elif a == 4:
            l3 += 1
        elif a == 5:
            l4 += 1
        elif a == 6:
            l5 += 1
        elif a == 7:
            l6 += 1
        elif a == 8:
            l7 += 1
        elif a == 9:
            l8 += 1
        elif a == 10:
            l9 += 1
        elif a == 11:
            l10 += 1
        elif a == 12:
            l11 += 1
        elif a == 12:
            l12 += 1
    print(f'输出2点{l1}次, 输出3点{l2}次, 输出4点{l3}次, 输出5点{l4}次, 输出7点{l5}次, 输出7点{l6}次,输出8点{l7}次, 输出9点{l8}次, 输出10点{l9}次, 输出11点{l10}次, 输出12点{l11}次')
    
    

    容器数据类型

    用一个变量可以保存多个数据

    • 列表---------->list

    • 元组---------->tuple

    • 集合---------->set

    • 字典---------->dict

      先选学

    nums = [10, 100, 1000]# 随便定义一个列表
    # 输出类型
    print(type(nums))
    student_rules = ['热爱祖国', '好好学习', '尊敬师长', '拥护中国共产党']
    # 列表里面可以放各种数据类型,可以交叉放
    print(nums, student_rules)
    # 追加,在列表末尾追加元素
    nums.append(10000)
    # 插入,在列表指定位置插入元素
    nums.insert(0, 1)
    # 删除最末尾一个元素
    nums.pop()
    
    

    列表遍历

    把每一个元素依次取出来

    nums = [1, 23, 34, 45, 73, 99]
    print(nums[2])#从零开始第二个元素
    print(nums[-3])#从末尾往前数第三个
    nums.append(100)
    nums.append(18)#末尾添加元素,随便加
    
    
    nums = [1, 23, 34, 45, 73, 99]
    a = len(nums)# 求出列表长度,,,len函数
    
    
    nums = [1, 23, 34, 45, 73, 99]
    for i in range(len(nums)):#按顺序遍历列表, 
        print(i, nums[i])# 输出带上顺序
    
        
    print('-'*20)
    # 高级的分割线,乘以多少得多少    
        
    for i, num in enumerate(nums):# 这是一种神奇的遍历函数,同时带出数据和元素
        # 在直接遍历列表的同时又可以取到列表的长度,第一个变量表示长度
        print(i, num)
    print('-'*20)
    for i, num in enumerate(nums):
        print(num)
    
    

    整理刚才那个要命的课堂练习

    import random
    
    fs = [0] * 6
    # 重复运算,一个0变六个零
    print(fs)
    for _ in range(60000):
        # 不需要用到的变量用下划线显得比较专业高级
        face = random.randrange(1, 7)
        # 在范围内选择随机数
        fs[face - 1] += 1
        # 列表都从0开始数
    for i in range(len(fs)):
        print(f'摇到{i + 1}点的次数为{fs[i]}')
    for i, value in enumerate(fs):
        print(f'摇到{i + 1}点的次数为{value}')
    

    优化昨天的作业

    nums = []
    # 定义一个空列表
    total = 0
    # 搞出一个变量一会用,不知道提前搞的,先搞下面代码,用到再加也行
    for _ in range(10):
        temp = int(input('请输入一个数'))
        nums.append(temp)
        # 将输入的数字加入到列表
    mean_value = sum(nums) / len(nums)
    # 使用求和函数求和,在除以列表长度
    for num in nums:
        # 遍历列表
        total = (num - mean_value) ** 2
        # 为方差做准备
        pass
    # 方差----->variance
    var_value = total // (len(nums) - 1)
    # 求出方差
    # 标准差------> standed deviation
    std_value = var_value ** 0.5
    max_value, min_value = max(nums), min(nums)
    print(f'平均数为{mean_value}, 方差为{var_value}, 标准差为{std_value}, 最大值为{max_value}, 最小值为{min_value}')
    
    

本周总结

从写第一个代码到现在四天时间,总结一周获益匪浅

  • 了解变量的含义,就行了一些简单的数据运算

  • 认识数据类型

  • input的了解及运用,今后也会经常用到,短短四天烂熟于心

  • 二进制(bin)、八进制(oct)、十进制、十六进制(hex),相互转换

  • 格式化输出:例如print(’%.1f + %.1f = %.1f’%(a1, b1, a1 + b1))、(print(f---------{变量}--------{变量}—))

    print(’-------{}-----{}.fromat(变量, 变量)’)

  • 布尔型

    非空字符串转换成布尔类型都是True
    空字符串(不是空格)转成布尔类型对应的值是False
    c = bool(input('c = '))
    非0数值对应布尔值都是True
    0对应布尔值为False
    d = bool()

  • Python中的运算符

    赋值运算符: 右边的复制给左边、

    符合运算符: += -= *= /=…

​ 关系运算符(比较运算符): < > >= <= == !=: 产生布尔值(True/False)

​ 逻辑运算符:把多个布尔值处理成一个布尔值 (多个布尔值到组合) and(与) or(或) not(非)

  • 分支结构的学习

    if条件:

    elif条件:

    elif条件:

    elif条件:

    elif条件:

    else:

    • 循环结构

      for i in range(0, n)n次循环

      for i in range(m, n)m-n次循环

      • while循环

        while 条件

注意确定终止条件以防形成死循环

  • 用一个变量可以保存多个数据

    列表---------->list

    元组---------->tuple

    集合---------->set

    字典---------->dict

    今天就学了列表,详情往上看,我也就偷偷懒了,上面更加详细

补充

之所以不设置重点选项是因为都很重要, 想要完整熟悉只有不断的多熟悉代码,认真看代码,理解代码形成的作用和原理,然后尝试自己写代码,从简单的开始,自主完成,多多练习,将知识点用上去学起来会容易很多

一开始都会很不知所措,不知道如何下手,慢慢的熟悉,练习多了也就慢慢轻车熟路了

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值