返回顶部
首页 > 资讯 > 后端开发 > Python >【14】Python100例基础练习(1
  • 197
分享到

【14】Python100例基础练习(1

基础 2023-01-31 06:01:44 197人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

例1:有四个数字:1、2、3、4能组成多少个互不相同且无重复的数字的三位数?各是多少?审题:1.去重2.计算总数程序代码:方法1: dict=[] for in range(1,5): #i变量赋值 1 2 3 4 for j

例1:
有四个数字:1、2、3、4能组成多少个互不相同且无重复的数字的三位数?各是多少?
审题:
1.去重
2.计算总数
程序代码:
方法1:

dict=[]
for  in range(1,5):  #i变量赋值 1 2 3 4
    for j in range(1,5):
        for k in range(1,5):
            if i != j and i != k and j != k: #当变量i不等于变量j,同时变量i不等于变量k,变量j不等于变量k时。条件成立
                dict.append([i,j,k]) #追加到列表里
print("总数量:",len(dict)) #统计数量
print(dict)

方法2:

num=[1,2,3,4]
count=0
for x in num:
    for y in num:
        for z in num:
            if x != y and x != z and y != z:
                count +=1 #循环一次累计一次
                print(x,y,z)
print("总数是>>>",count)

方法3:整合for与if

list_num = [1,2,3,4]
list = [x*100 + y*10 + z*1 for x in list_num for y in list_num for z in list_num if (x != y) and (x != z) and ( y != z)]
print(list,len(list)) #打印不重复三位数及总数

例2:
题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
方法1:列表

i = int(input('净利润:'))
Bonus = [1000000, 600000, 400000, 200000, 100000, 0] #利润
Bonuslist = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] #利润对应利率
count = 0 #计数器
for idem in range(0, len(Bonus)):
    if i > Bonus[idem]:  #大于奖励金额
        count += (i - Bonus[idem]) * Bonuslist[idem]  #计算 count+本金*提成
        print((i - Bonus[idem]) * Bonuslist[idem]) #打印每个层次得到提成
        i = Bonus[idem]
print (count) #提成

方法2:嵌套列表

count=0
BonusList=[[100,0.01],[60,0.15],[40,0.03],[20,0.05],[10,0.075],[0,0.1]]
Profit= 210000
Profit /=10000
for i in range(0,len(BonusList)):
    if Profit > BonusList[i][0]:
        count += (Profit - BonusList[i][0])* BonusList[i][1]
        Profit = BonusList[i][0]
        #print(Profit)
print(count * 10000)

方法3:字典

num=int(input('请输入利润>>> '))
Bonus_dict={100:0.01,60:0.015,40:0.03,20:0.05,10:0.075,0:0.1}
keys=Bonus_dict.keys()
count=0
for i in keys:
    if num > i:
        count += (num - i) * Bonus_dict.get(i) #
        num =i
print("奖金:",count * 10000)

get函数描述
python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。
语法:
dict.get(key, default=None)
参数:
key -- 字典中要查找的键。
default -- 如果指定键的值不存在时,返回该默认值值。
返回值:
返回指定键的值,如果值不在字典中返回默认值 None。


例3:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
审题:
求解,在用代码实现计算。
程序源代码:
方法1:
思想:
1、设n+100=x^2,n+100+168=y^2
2、所n=x^2-100(求n)
3、故x^2-y^2=(x+y)(x-y)=168

list=[]
for x in range(168):
    for y in range(x):
        if x**2 - y**2 == 168:
            x = y**2 -100
            list.append(x)
print("符合条件的有: ",list)

方法2: 并集
思路:根据公式求x和y的,然后并集操作得结果。

x=map(lambda n:n**2-100,range(1,100))

y=map(lambda n:n**2-100-168,range(1,100))

print(set(list(x))&set(list(y)))

这里涉及map函数实用方法。
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。


例4:
题目:输入某年某月某日,判断这一天是这一年的第几天?
思考:特殊情况年份有闰年
方法1:用list框出闰年与平年的月份时间

#输入年月日
year=int(input("To new year>>>"))
month=int(input("Input Month>>>"))
day=int(input("Input Day>>>"))
months1=[0,31,60,91,121,152,182,213,244,274,305,335,366] #闰年
months2=[0,31,59,90,120,151,181,212,243,273,304,334,365] #平年

if year%4==0 and year%100!=0 or year%100==0 and year%400==0:
    YMD=months1[month-1]+day
else:
    YMD=months2[month-1]+day
print("是%s年的第%s" %(year,YMD))

方法2:快捷,实用time模块

import time
print(time.strptime('2013-11-24', '%Y-%m-%d')[7])

方法3:calendar日历模块

import calendar
year = int(input("year: "))
month = int(input("month: "))
day = int(input("day: "))
days = 0
if 0 < month <= 12:
    _, month_day = calendar.monthrange(year, month)
    if day <= month_day:
        for m in range(1, month):
            _, month_day = calendar.monthrange(year, m)
            days += month_day
        days += day
        print (days)****
    else:
        print( "input day error")
else:
    print ("input month error")

import calendar此模块的函数都是日历相关的,例如打印某月的字符月历。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:

序号 函数及描述
1 calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21 W+18+2 C。l是每星期行数。
2 calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
3 calendar.isleap(year)
是闰年返回True,否则为false。
4 calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
5 calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6 calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
7 calendar.monthrange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
8 calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w,l,c).
9 calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.calendar(year,w,l,c)
10 calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
11 calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。
12 calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。


例5:
随机输入三个数x、y、z,并把这三个数有小到大排列。
方法1:利用sort函数排序

l=[]
for i in range(3):
    x = int(input("Result>>> "))
    l.append(x)
l.sort()
print(l)

sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
方法2:使用 列表 sort=,可接受参数 reverse,默认为布尔值 false,按升序排序;设置为 true 则按降序排序。

x= int(input("x== "))
y= int(input("y== "))
z= int(input("z== "))
num= [x,y,z]
num.sort()   # 对列表进行升序排序
print("从小到大为:",num)
rnum = [x,y,z]  # 对列表进行降序排序
rnum.sort(reverse=True)
print("从大到小为:",rnum)

--结束END--

本文标题: 【14】Python100例基础练习(1

本文链接: https://lsjlt.com/news/189935.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【14】Python100例基础练习(1
    例1:有四个数字:1、2、3、4能组成多少个互不相同且无重复的数字的三位数?各是多少?审题:1.去重2.计算总数程序代码:方法1: dict=[] for in range(1,5): #i变量赋值 1 2 3 4 for j ...
    99+
    2023-01-31
    基础
  • 【15】Python100例基础练习(2
    例6题目:斐波那契数列斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28...
    99+
    2023-01-31
    基础
  • 【17】Python100例基础练习(3
    例11:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子的规律1,1,2,3,5,8,13,21... ...方法1:使用def d...
    99+
    2023-01-31
    基础
  • 【20】Python100例基础练习(4
    例16:题目:输出指定格式的日期方法1: import datetime if __name__ == '__main__': # 输出今日日期,格式为 dd/mm/yyyy。更多选项可以查看 strftime() 方法 ...
    99+
    2023-01-31
    基础
  • python基础1习题练习
    python基础1习题练习: #encoding:utf-8 #1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! name=input('name>>: ').strip...
    99+
    2023-01-31
    习题 基础 python
  • Python基础练习100题 ( 1~
    大家好,好久不见,我最近在Github上发现了一个好东西,是关于夯实Python基础的100道题,原作者是在Python2的时候创建的,闲来无事,非常适合像我一样的小白来练习 对于每一道题,解法都不唯一,我在这里仅仅是抛砖引玉,希望可以...
    99+
    2023-01-31
    基础 Python
  • 14道基础Python练习题(附答案)
    目录1. 输入一个百分制成绩2. 篮球比赛案例3.根据y=1+3-1+3-1+……+(2n-1)-1,求:4. 购物卡案例5. 设计一个猜数游戏6.建立1个包含10个字符的字符串7....
    99+
    2024-04-02
  • Python--基础练习
    1. 在Linux电脑上安装python,ipython,pycharm专业版本软件;   2. 在Windows电脑上安装python3版本,并配置环境变量,确保Dos环境下运行脚本;   3. Linux下有多少种运行python的不同...
    99+
    2023-01-31
    基础 Python
  • 【Python基础】练习题
    # 练习题 ''' 1、简述编译型语言和解释性语言的区别,并且列出你知道哪些语言为编译型那些为解释型 编译型语言:每次编写完成后都要将其编译成二进制(0和1)文件 优点:运行速度快 ...
    99+
    2023-01-31
    练习题 基础 Python
  • python基础练习_1.1
    练习_1.1练习题目:    1 打印九九乘法表     2 打印下方菱形     3 打印100以内的斐波那契数列     4 求斐波那契数列第101项     5 求10万内的所有质数        *          ***    ...
    99+
    2023-01-31
    基础 python
  • python基础学习1
    一.python第一个程序 print("hello world") 二.变量的命名规则   1. 字母数字下划线组成  2. 不能以数字开头,不能含有特殊字符和空格  3. 不能以保留字命名  4. 不能以中文命名  5. 定义的...
    99+
    2023-01-30
    基础 python
  • python3--基础总练习题
    1、常用字符串格式化有哪些并说明他们的区别格式化操作符(%)fotmat2、请手写一个单例模式(面试题)无论实例化多少次,他的对象始终是一个内存地址单例模式,示例:class test:    &nb...
    99+
    2023-01-30
    练习题 基础
  • python基础学习14----正则表达
    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 在python中正则表达式被封装到了re模块,通过引入re模块来使用...
    99+
    2023-01-30
    正则 基础 python
  • python3--基础综合练习题
    最好自己先尝试做一做练习1:猜年龄游戏要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出#!/usr/bin/env python # coding: utf-8 __au...
    99+
    2023-01-30
    练习题 基础
  • Python基础练习100题 ( 31
    昨天和大家分享了21-30题,今天继续来刷31~40题 Question 31: Define a function which can print a dictionary where the keys are number...
    99+
    2023-01-31
    基础 Python
  • Python基础练习100题 ( 41
    大家好,我又回来了,昨天和大家分享了31-40题,今天继续来看41~50题 Question 41: Write a program which can map() to make a list whose elements are s...
    99+
    2023-01-31
    基础 Python
  • Python基础练习100题 ( 61
    昨天和大家分享了51-60题,今天继续来刷61~70题 Question 61: The Fibonacci Sequence is computed based on the following formula: f(n)=0 if ...
    99+
    2023-01-31
    基础 Python
  • Python基础练习100题 ( 81
    昨天和大家分享了71-80题,今天继续来刷81~90题 Question 81: By using list comprehension, please write a program to print the list after r...
    99+
    2023-01-31
    基础 Python
  • Python基础练习100题 ( 71
    昨天和大家分享了61-70题,今天继续来刷71~80题 Question 71: Please write a program to output a random number, which is divisible by 5 and...
    99+
    2023-01-31
    基础 Python
  • Python基础练习100题 ( 51
    昨天和大家分享了41-50题,今天继续来刷51~60题 Question 51: Write a function to compute 5/0 and use try/except to catch the exceptions. ...
    99+
    2023-01-31
    基础 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作