IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 学习Python第三天 -> 正文阅读

[Python知识库]学习Python第三天

学习Python第三天

今天都在练习代码,熟悉代码,并且优化昨天的作业,在学习过程中发现滋生存在的错误,

课后作业

因为我也在学习过程中,所以也会存在一些问题

第一题,

主要找到分解 隔,十,百位的各个数字,然后带入公式即可

for i in range(100, 1000):
    x1 = (i // 100) ** 3#整除100即可得到百位上的数字
    x2 = ((i % 100) // 10) ** 3#i对100求余,得到十位百位,然后整除10,得到十位上的数字
    x3 = (i % 10) ** 3i#直接整除10,得到个位数
    if x1 + x2 + x3 == i:
       print(i)
    
    
    
#    补充练习,将一个多位数各个位置上的数字颠倒位置1234---->4321
num = int(input('请输入一个多位数'))
x = num
total = 0
while x > 0:
    x, y = x // 10, x % 10
    total = total * 10 + y
print(total)
#思路如下,以一个数举例
12345
12345 / 10 = 1234------>5    5* 10
1234 / 10 = 123-------->4    (5*10 +4)*10
123 / 10 = 12---------->3    ((5*10 +4)*10+3)*10
12 / 10 = 1------------>2    (((5*10 +4)*10+3)*10+2)*10
1 / 10 =0-------------->1    (((5*10 +4)*10+3)*10+2)*10+1

第二题,

首先确定质数的性质,不存在自身和1以外的因子(别问为什么先讲这个题,看完你就知道了)

num = int(input('请输入一个正整数'))
is_prime = True
for i in range(2,num):
    if num % i == 0:
    is_prime = False
    break
# 确定不是质数就可以终止循环
if num > 1 and is_prime = True #1不是质数
print(f'{num}是质数')
print(f'{num}不是质数')





#补充练习
#寻找一百以内的质数
#思路:首先循环1到100,再循环判断这个数是不是质数
for i in range(2, 101):# 1不是质数,从二开始
    is_prime = True
    for j in range(2, i):#判断是不是质数的问题
        if i % j == 0:
            is_prime = False
            break
    if is_prime:
        print(i, end='  ') # 用空格 隔开

        
#补充练习
#打印九九乘法表
n = 9
for i in range(1, n+1):
    for j in range(1, i + 1):
        f = i * j
        print(f'{j} * {i} = {f}', end='\t')#格式化输出乘法表  end = '\t'用于输出对齐
    print()#换行

        
        

第三题

  • 输入三角形三条边长度,如果能构成三角形,计算三角形面积,如果不能的、构成三角形,重新输入,直到3可以构成三角形

    思路:利用海伦公式计算

    while True#不确定循环次数,用while循环
        a = float(input('输入第一条边长='))
        b = float(input('输入第二条边长='))
        c = float(input('输入第三条边长='))
        if a + b > c and a + c > b and b + c > a:
            p = (a + b + c) / 2
            area = (p * (p - a) * (p - b) * (p - c)) ** (1 / 2)
            print(f'该三角形面积为{area}')
            break#求出三角形面积,终止循环
        else:
            print('请重新输入边长')
    

    第四题

  • 多次循环求阶乘,带入公式

  • 这个题理解起来还是相对简单的

  • 但是还有一种更为便捷的方法,利用math包里的函数直接求得阶乘

    #方法一
    m = int(input('请输入一个正整数m = '))
    n = int(input('请输入一个正整数(小于m)n = '))
    x1 = 1
    x2 = 1
    x3 = 1
    for i in range(1, m + 1):
        x1 *= i
        pass
    for j in range(1, n + 1):
        x2 *= j
        pass
    for q in range(1, m - n + 1):
        x3 *= q
        pass
    print(x1 / x2 / x3)
    
    
    #方法二
    improt math#导入包
    m = int(input('请输入一个正整数m = '))
    n = int(input('请输入一个正整数(小于m)n = '))
    # 直接运用包中的函数进行格式化输出
    print(math.factorial(m) / math.factorial(n) / math.factorial(m - n))
    
    #方法二
    from math import factorial as f
    #这一步可分解为:from math 从math包中  improt factorial  导入该函数 as f 将该函数简化为用f表示
    m = int(input('请输入一个正整数m = '))
    n = int(input('请输入一个正整数(小于m)n = '))
    print(f(m) / f(n) / f(m - n))
    
    
    

    第五题

    for i in range(2, 10001):#循环2 到10000,1本身是质数,可以不用管
        temp = 1             #定义一个变量进行,从1开始累加,因为每个数都有1这个因子
        for j in range(2, i):#他的因子都小于自身,所以只需要循环2到i即可
            if i % j == 0:   #满足条件:能够被i整除,就进行累加
                temp += j
        if temp == i:       #满足完美数条件,将其输出
            print(i)
    

    今天是疯狂练题的一天

    • 一百块钱买一百只鸡, 百钱百鸡问题
    • 假设大公鸡五块钱一只,老母鸡三块钱一只,小鸡仔一块钱三只,一百块钱要买一百只鸡

    思路:循环嵌套

    买大公鸡,老母鸡,小鸡仔的钱加起来等于100

    大公鸡,老母鸡,小鸡仔加起来一百只

    就像以前学的三元一次方程

    #初始代码
    for i in range(0, 20):#公鸡最多买20只
        for j in range(0, 33):#老母鸡最多买
            for k in range(0, 99)#小鸡仔最多买99只
            if k % 3 == 0 and 5 * i + 3 * j + k * 1 / 3 == 100 and i + j + k == 100:带入条件
                print(f'购买公鸡{i}只, 母鸡{j}只,小鸡{k}只')
    
                
    #改良版            
                for i in range(0, 20):
        for j in range(0, 33):
            # 减少循环次数
            k = 100 - i - j
            if k % 3 == 0 and 5 * i + 3 * j + k * 1 / 3 == 100 and i + j + k == 100:
                print(f'购买公鸡{i}只, 母鸡{j}只,小鸡{k}只')
    
    
  • 五个人晚上去捕鱼,捕到不计其数的鱼,累到不行要去睡觉,第二天,A第一个醒来,把鱼分成五份, 扔掉多余的一条,拿着自己的一份就走了,B第二个醒来,不知道A已经走了,做了和A一样的事情,扔掉一条刚好分成五份,拿走了自己的,CDE相继醒来也各自做了和AB两人一样的事情(忍不住吐槽,怎么会有那么憨的人,这样都能逮到鱼)求他们至少捕到多少鱼

  • 思路

  • 最少的肯定是一条, 虽然不够分,但是但是方便计算

  • 因为不确定需要循环的次数,所以用whil循环

  • 定义一个终止循环的钥匙is_enough = Ture,当满足条件是用break终止循环

  • 然后在while循环中用for循环判断鱼的数量

  • 当鱼的数量符合条件时退出for循环(鱼需要分五次,所以只需要五次循环,但是五次都没有分出来就重新进行for循环)

  • for循环满足则is_enough满足条件输出fish,用break终止while循环,程序结束

    fish = 1
    while True:
        is_enough = True
        total = fish
        for _ in range(5):
            if (total -1 ) % 5 == 0:
                total = (total - 1) // 5 * 4
            else:
                is_enough = Flase
            pass
        if is_enough:
            print(fish)
            break
        else:
            fish += 1
                
            
        
    

    课后练习

    • 计算机产生一个1到100的随机数,输入自己猜的数字
      计算机给出对应提示"大一点",”小一点“,或 ”恭喜你猜对了,直到猜中为止“
      如果猜的次数超过七次,温馨提示”智商余额不足“
    • 输入十个大于0的整数,1到100之间,找到送平均值,最大值,
    • 答案明天讲解
import random
answer = random.randrange(1, 101)
while True:
    is_right = True
    for _ in range(7):
        gass = int(input('你猜它是几'))
        if answer == gass:
            print('恭喜你猜对了')
            break
        elif gass > answer:
            print('小一点')
            is_right = False
            pass
        else:
            print('大一点')
            is_right = False
    if is_right:
        break
    else:
        print('智商余额不足')

x = 0
count = 0
x1 = 100
for _ in range(10):
    a = int(input('请输入一个整数'))
    count += a
    if a >= x:
        x = a
    elif a <= x1:
        x1 = a
avg = count / 10
print(f'最大值为{x},平均数为{avg}, 最小值为{x1}')

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:43:09  更:2021-07-23 10:43:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 7:49:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码