天天看点

【14】Python100例基础练习(1)

例1:

有四个数字:1、2、3、4能组成多少个互不相同且无重复的数字的三位数?各是多少?

审题:

1.去重

2.计算总数

程序代码:

方法1:

方法2:

方法3:整合for与if

例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:列表

方法2:嵌套列表

方法3:字典

get函数描述

Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。

语法:

dict.get(key, default=None)

参数:

key -- 字典中要查找的键。

default -- 如果指定键的值不存在时,返回该默认值值。

返回值:

返回指定键的值,如果值不在字典中返回默认值 None。

例3:

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

求解,在用代码实现计算。

程序源代码:

思想:

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

方法2: 并集

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

这里涉及map函数实用方法。

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

例4:

题目:输入某年某月某日,判断这一天是这一年的第几天?

思考:特殊情况年份有闰年

方法1:用list框出闰年与平年的月份时间

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

方法3:calendar日历模块

import calendar此模块的函数都是日历相关的,例如打印某月的字符月历。

星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:

序号 函数及描述

1 calendar.calendar(year,w=2,l=1,c=6)

返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21 W+18+2C。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函数排序

sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

方法2:使用 列表 sort=,可接受参数 reverse,默认为布尔值 false,按升序排序;设置为 true 则按降序排序。