Python编程4道练习题

枫铃3年前 (2021-10-03)Python238

实例一:数学计算

简述:这里有四个数字,分别是:1、2、3、4

提问:能组成多少个互不相同且无重复数字的三位数?各是多少?

Python解题思路分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。(for循环)

代码实现:

list = []   #定义一个空的列表用来存储生产的数字
for i in range(1,5):   #定义百位数
     for j in range(1,5):   #定义十位数
         for k in range(1,5):  #定义个位数
             if i != j and j !=k and i != k:
                 num = i*100+j*10+k     
                 print(num)
                 list.append(num)   #将生成的数字加入到list列表中
                 result_num = len(list)   #统计列表中元素的个数
print("可以组合的个数为%d"%(result_num))

实例二:关于数轴和长整型数据类型的练习

简述:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成.

提问:从键盘输入当月利润I,求应发放奖金总数?

Python解题思路分析:请利用数轴来分界及定位。并要注意定义时需要把奖金定义成长整型的数据类型。

代码实现:

profit = int(input("请输入您的净利润:"))
arr = [1000000,600000,400000,200000,100000,0]
Money_rate = [0.01,0.015,0.03,0.05,0.075,0.1]
bonus = 0
for i in range(0,6):
    if profit > arr[i]:    #判断净利润的范围
        bonus += (profit-arr[i])*Money_rate[i]   #奖金的计算
        print((profit-arr[i])*Money_rate[i])
        profit = arr[i]   #重新复制净利润,进行低阶段判断
print(bonus)

实例三:平方数的操作练习

简述:一个整数,它加上100和加上268后都是一个完全平方数

提问:请问该数是多少?

Python解题思路分析:在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。

说明:sqrt() 方法返回数字x的平方根,sqrt()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import math
for i in range(10000):
    x = int(math.sqrt(i+100))
    y = int(math.sqrt(i+268))
    if x * x == i + 100 and y * y == i + 268:
        print(i)

实例四:日期计算,编程练习

简述:要求输入某年某月某日

提问:求判断输入日期是当年中的第几天?

Python解题思路分析:我们就以3月5日这一天为例。首先把前两个月的加起来,然后再加上5天即本年的第几天。这里有一种特殊的情况,就是闰月,遇到这种情况且输入月份大于2时需考虑多加一天。如果不是很明白,可以看下边的python源码。

year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入天:"))
months = (0,31,59,90,120,151,181,212,243,273,304,334)  #按月份统计该月份前的天数
if 0 < month <= 12:
    sum = months[month-1]
else:
    print("日期输入错误!")
sum += day
a = 0 #定义一个中间变量
if (year % 400 == 0) or (( year % 4 == 0 ) and ( year % 100 != 0)):  #判断年份是否是闰年
    a = 1
if (a == 1) and ( month > 2):
    sum += 1
print("今天是第%s天"%sum)

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。