跟着小皮老师每日练习一波Python代码❤❤

Pthon3.7


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

完整代码:

for i in range(1,5): #i从1,(5-1)依次循环输出
    for j in range(1,5):
        for k in range(1,5):
            if( i! = k ) and (i != j) and (j != k):
                print(i,j,k)    


#补充:如果要显示输出了多少组这样的数
o=0
for i in range(1,5): #i从1,(5-1)依次循环输出
    for j in range(1,5):
        for k in range(1,5):
            if( i! = k ) and (i != j) and (j != k):
                print(i,j,k)    
                o=o+1
print(o)

说明:代码依次执行,执行到第3行时,发现当i=1,j=1时,if语句永远无法成立,故在i=1,j=1,k从1增到4之后,j+1,之后k=1/2均不成立,k=3/4成立,故有123,124

在pycharm中执行:

跟着小皮老师每日练习一波Python代码❤❤_第1张图片

在python3.7中执行:

跟着小皮老师每日练习一波Python代码❤❤_第2张图片

 


题目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)该题目用数组进行解决,避免了多次使用if语句,而且多次使用if语句可以适用于较少计算值时的过程,如果计算值较多,写都写不过来

(1)该题目可以用数轴来分界、定位,注意定义时需要把奖金定义成长整型

(2)在python‘3中,要求输入时不能输入raw_input了,因为python3将其与input合并了,最终只剩下input了,两者之间的区别是,raw_input将所有输入默认为字符串string处理并返回字符串类型,而input则是输入什么类型便会返回什么类型

代码一(使用if语句,这里省略了万,此处有一个bug,就是未考虑等于的情况):

跟着小皮老师每日练习一波Python代码❤❤_第3张图片

代码二(使用数组):

跟着小皮老师每日练习一波Python代码❤❤_第4张图片

注意:因为字符串和整型数字无法一起输出,所以这里将数字强制转换成字符串类型。本来想用if语句根据数组方式输出,类似于嵌套的方式,但是后来发现无法使用嵌套,因为i的值每次都是在某一个范围内,无法进行叠加,如果单纯使用if语句嵌套是不行的(个人想法,后期还需努力)


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

分析:

跟着小皮老师每日练习一波Python代码❤❤_第5张图片

代码如下:

跟着小皮老师每日练习一波Python代码❤❤_第6张图片


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

分析:以3月5日为例,应该先把前两个月加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2月时需考虑多加一天

跟着小皮老师每日练习一波Python代码❤❤_第7张图片

注意:该题的解决思路主要是首先将每个月及之前月数的天数计算并写到数组中,继而判断是几月,与数组中的月数和相匹配,然后再加上“日”,即为总的天数,但是此时有个特殊情况,即为判断其是否是闰年,因为闰年的二月需要多加一天,这个判断可以写在代码刚开始或结束,此处写在结束,首先定义一个leap变量,判断是闰年且月份大于2时(因为月份小于2时不需要加天数),leap变量的值变为1,否则不发生改变。

题目5:输入三个整数x,y,z,请把这三个数由小到大输出。

分析:把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

代码如下:

跟着小皮老师每日练习一波Python代码❤❤_第8张图片

注意:从这个代码可以看出来python多么方便


题目6:斐波那契数列

分析:斐波那契数列又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34……【即f0=0,f1=0,fn=f(n-1)+f(n-2)(n=>2)】

代码1如下:

跟着小皮老师每日练习一波Python代码❤❤_第9张图片

代码2如下:

分析:需要输出指定个数的斐波那契数列

跟着小皮老师每日练习一波Python代码❤❤_第10张图片


题目7:将一个列表的数据复制到另一个列表中

代码如下:

跟着小皮老师每日练习一波Python代码❤❤_第11张图片


题目8:输出9*9乘法口诀表

代码如下:

跟着小皮老师每日练习一波Python代码❤❤_第12张图片

代码2如下:

跟着小皮老师每日练习一波Python代码❤❤_第13张图片

注意:其中代码2中的的format,从python 2.6开始,新增了一种格式化的函数str.format(),它增强了字符串格式化的功能,基本语法是通过{}和:来代替以前的%

跟着小皮老师每日练习一波Python代码❤❤_第14张图片


题目9:暂停一秒输出

分析:使用time模块的sleep()函数

跟着小皮老师每日练习一波Python代码❤❤_第15张图片

 


题目10:暂停一秒输出,并格式化当前时间

跟着小皮老师每日练习一波Python代码❤❤_第16张图片

 

你可能感兴趣的:(python练习)