zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python基础练习题

Python基础 练习题
2023-09-11 14:16:58 时间
  1. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复的三位数?各是多少?
for i in range(1,5):
    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)
  1. 企业发放的奖金根据利润提成。
    利润(I)低于或等于10万元时,奖金可提10%;
    利润高于10万元,低于10万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
    20万到40万元的部分,高于20万元的部分,可提成5%;
    40万元到60万元之间时高于40万元的部分,可提成3%;
    60万元到100万之间时,高于60万元的部分,可提成1.5%;
    高于100万元时,超过100万元的部分按1%提成。
    从键盘输入当月利润I,求应发奖金总数。
i = int(input("输入你的利润值"))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
result = 0
for idx in range(0,6):
    if i > arr[idx]:
        result +=(i-arr[idx])*rat[idx]
        i = arr[idx]
result
  1. 输入三个整数x,y,z,请把这三个数由小到大输出
my_list = []
for i in range(3):
    x = int(input("input : "))
    my_list.append(x)
#my_list.sort()
my_list.sort(reverse = True)
my_list
  1. 将一个列表的数据复制到另一个列表中
a = [1,2,3]
b = a[:]
b
  1. 暂停一秒输出,并格式化当前时间。使用time模块的sleep()函数
import time
print (time.strftime('%Y-%m-%d-%H:%M:%S',time.localtime(time.time())))
​
time.sleep(1)
print (time.strftime('%Y-%m-%d-%H:%M:%S',time.localtime(time.time())))
​
time.sleep(2)
print (time.strftime('%Y-%m-%d-%H:%M:%S',time.localtime(time.time())))
  1. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1^3 +5^3 +3^3。
for x in range(1,10):
    for y in range(0,10):
        for z in range(0,10):
            s1 = x*100+y*10+z
            s2 = pow(x,3) + pow(y,3) + pow(z,3)
            if s1==s2:
                print(s1)
  1. 输入一行字符串,分别统计英文字母、空格、数字和其它字符的个数。
s = input('input : ')
letters = 0
space = 0
digit = 0
others = 0
for c in s:
    if c.isalpha():
        letters +=1
    elif c.isspace():
        space +=1
    elif c.isdigit():
        digit +=1
    else:
        others +=1
print('char = %d,space = %d,digit = %d,others = %d' %(letters,space,digit,others))
  1. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,求它在第十次落地时,共经过多少米?第十次反弹多高?
h = 100 #总高度
time = 10 #次数
height = [] #从第二次开始的下落高度
for i in range(2,time+1):
    h /= 2
    height.append(h)
print (min(height)/2)
print (sum(height)*2 + 100)
  1. 利用递归方法求5!
def digui(j):
    sum_value = 0
    if j == 0:
        sum_value = 1
    else:
        sum_value = j * digui(j - 1)
    return sum_value
for i in range(10):
    print('%d! = %d' % (i,digui(i)))
  1. 利用递归函数调用方法,将输入的5个字符,以相反顺序打印出来
def output(s,l):
    if l ==0:
        return
    print(s[l-1])
    output(s,l-1)
s = input('输入一个字符串')
l = len(s)
output(s,l)
  1. 按逗号分隔列表
L = ['hello','world','hi','python']
s = ','.join(str(n) for n in L)
s
  1. 将一个数组逆序输出
a = [6,3,8,1,9,0]
N = len(a)
print (a)
for i in range(int(len(a)/2)):
    a[i],a[N-1-i] = a[N-1-i],a[i]
print (a)
  1. 两个3行3列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵
X = [[1,2,3],
     [4,5,6],
     [7,8,9]]
Y = [[10,2,3],
     [4,50,6],
     [7,8,90]]
Z = [[0,0,0],
     [0,0,0],
     [0,0,0]]
for i in range(3):
    for j in range(3):
        Z[i][j] = X[i][j] + Y[i][j]
for z in Z:
    print(z)
  1. 匿名函数求和
sum_value = lambda x,y:x+y
print (sum_value(1,2))
  1. 查找字符串的位置
s1 = 'xmvgkiwljvwrhre'
s2 = 'wljvw'
print(s1.find(s2))
  1. 在字典中找到年龄最大的人,并输出
people = {'jack':18,'amy':20,'milk':22}
m = 'amy'
for key in people.keys():
    if people[key] > people[m]:
        m = key
print(m,people[m])
  1. 列表转换为字典
k = ['q','w']
v = [123,456]
print(dict([k,v]))
  1. 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存
f = open('test.txt','w')
s = input('输入一个字符串')
s = s.upper()
f.write(s)
f.close()
​
f = open('test.txt','r')
print(f.read())
f.close()