10个Python基础语法练习(1)

目录

1、数字组合

2、分段函数应用题

3、数学计算

4、判断日期

5、数字排序

6、斐波那契数列

7、时间函数

8、画菱形

9、应用题-生兔子

10、输出素数


1、数字组合

题目:有四个数字 1、2、3、4,能组成多少无重复数字的三位数,统计个数并打印。

思路:本题只有四种数字组成三位数,可以采用穷举法,分别循环百位、十位、个位数字,再判断是否有重复数字,最后采用列表方式输出所有的结果。

list1 = []

# 循环百位数字
for i in range(1, 5):
    # 循环十位数字
    for j in range(1, 5):
        # 循环各位数字
        for k in range(1, 5):
            # 当百位、十位、个位数字不同时,输出组合数字
            if i != j and i != k and j != k:
                a = 100*i+10*j+k
                list1.append(a)
                continue

# 打印列表和元素个数
print(list1)
print("总共有:{}".format(len(list1)))

# 输出结果
[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
总共有:24

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,求应发放奖金总数?

思路:典型的初高中分段函数题,利用多个“elif”判断语句即可完成。

i = int(input("请输入当月利润:"))
# 小于等于10万时
if i <= 100000:
    a = i * 0.1
# 10万到20万之间时
elif 100000 <= i <= 200000:
    a = 100000 * 0.1 + (i - 100000) * 0.075
# 20万到40万之间时
elif 200000 <= i <= 400000:
    a = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05
# 40万到60万之间时
elif 400000 <= i <= 600000:
    a = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03
# 60万到100万之间时
elif 600000 <= i <= 1000000:
    a = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015
# 大于100万时
else:
    a = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01

print("应发奖金为:{}".format(a))

3、数学计算

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

思路:本题加上的数只有268,并且为整数,可以省略数学思维,采用穷举法,从1开始循环,判断满足条件的数字并输出。

n = 1
# 循环
while True:
    # 判断语句,判断n加上100(268)后开方是否为整数
    if (n+100)**0.5 == int((n+100)**0.5) and (n+268)**0.5 == int((n+268)**0.5):
        print(n)
        break
    else:
        n +=1

# 输出结果
21

4、判断日期

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

思路:计算日期,需要区分大小月,以及闰年的二月有29天。

year=int(input("请输入年份:"))
month=int(input("请输入月份:"))
day=int(input("请输入日期:"))

# 判断是否为闰年
if year%4==0:
    # 定义顺序列表
    list1=[0,31,29,31,30,31,30,31,31,30,31,30,31]
    days=0
    for i in range(month):
        # 累加满月天数
        days+=list1[i]
    print(days+day)
    print("这是闰年")
else:
    list1=[0,31,28,31,30,31,30,31,31,30,31,30,31]
    days=0
    for i in range(month):
        days+=list1[i]
    print(days+day)
    print("这不是闰年")

5、数字排序

题目:任意输入三个数,自动排序并输出。

思路:利用列表的排序方法

x=int(input("请输入第一个数:"))
y=int(input("请输入第二个数:"))
z=int(input("请输入第三个数:"))

# 定义列表
list1=[x,y,z]
# 列表排序方法
list1.sort(reverse=False)
# 将int类型转换为string类型,并输出
a=map(str,list1)
print(" ".join(a))

6、斐波那契数列

题目:斐波那契数列,从1,1开始,后面每一项等于前两项之和。

思路:函数递归

# 定义函数
def fun(n):
    if n==1 or n==2:
        return 1
    else:
        # 函数自我调用
        return fun(n-2)+fun(n-1)
        # fun1 fun2 fun1+fun2 fun2+fun3


list1=[]
# 输出前20项
for i in range(1,20):
    list1.append(fun(i))
print(list1)

# 输出结果
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]

7、时间函数

题目:暂停几秒输出

# 调用time库
import time

for i in range(4):
    print(i)
    # 延迟5s输出
    time.sleep(5)

8、画菱形

题目:画菱形

def draw(n):
    a="*"*(2*(4-n)*1)
    print(a.center(9," "))
    if n!=1:
        draw(n-1)
        print(a.center(9," "))
draw(4)

# 输出结果
    **   
   ****  
  ****** 
   ****  
    **   
       

9、应用题-生兔子

题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

思路:依旧是利用函数递归,其结果类似斐波那契数列

def fun(n):
    if n<=2:
        return 1
    else:
        return fun(n-2)+fun(n-1)
        # fun1 fun2 fun1+fun2 fun2+fun3


list1=[]
for i in range(1,10):
    list1.append(2*fun(i))
print(list1)
# print(fun(10))

# 输出结果
[2, 2, 4, 6, 10, 16, 26, 42, 68]

10、输出素数

题目:输出1~100的所有素数

思路:穷举1~100的数,判断数字是否能整除2到自身的所以整数。

list=[]

# 循环1~100的整数
for i in range(1,101):
    for j in range(2,i):
        # 判断是否为素数
        if i%j==0:
            break
    else:
        list.append(i)
print(list)

# 输出结果
[1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

上一篇:CentOS 7 安装 Apache, MySQL, PHP 指南


下一篇:《新编计算机科学概论》一第1章 数据的表示与编码