Python经典基础编程练习题(一)——每日10题

  • Post author:
  • Post category:python

1.这里有四个数字,分别是:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?请列举出来,并用空格分隔。

解题思路:筛选出三位中数字相同的情况,并忽略他们。

list1=[]
count=0
for a in range(1,5):
    for b in range (1,5):
        for c in range(1,5):
            if a!=b and b!=c and a!=c:
                d=100*a+10*b+c
                count+=1
                list1.append(d)
print('一共有%d个三位数' % count)
for i in list1:
    print(i,end=' ')

2.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,低于20万元的部分按7.5%提成,高于20万元的部分,可提成5%;40万到60万之间时,低于40万元的部分按5%提成,高于40万元的部分,可提成3%;60万到100万之间时,低于60万元的部分按3%提成,高于60万元的部分,可提成1.5%,高于100万元时,低于100万元的部分按1.5%提成,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

解题思路:用if语句判断各个条件区间。

lirun=int(input('请输入你的利润:'))
if lirun <= 100000:
    p=lirun*0.1
if lirun >100000 and lirun <=200000:
    p=10000*0.1+(lirun - 100000)*0.075
if lirun >200000 and lirun <=400000:
    p=200000*0.075+(lirun - 200000)*0.05
if lirun >400000 and lirun <=600000:
    p=400000*0.05+(lirun - 400000)*0.03
if lirun >600000 and lirun <=1000000:
    p=600000*0.03+(lirun - 600000)*0.015
if lirun >1000000:
    p=1000000*0.015+(lirun-1000000)*0.01
print(p)

3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问在该数小于1000000的情况下,该数是多少?

解题思路:如果某数是完全平方数,那么该数开方为一个整数。

import math
for i in range(1,1000000):
    if math.sqrt(i+100)==int(math.sqrt(i+100)) and math.sqrt(i+268)==int(math.sqrt(i+268)):
        print(i)

4.编写一个程序,找到所有可以被7整除但不是5的倍数的数字,2000至3200之间(均包括在内)。获得的数字应以逗号分隔的顺序打印在一行上。

解题思路:用if语句作为判断,注意输出格式。

list1=[]
for i in range(2000,3201):
    if i%7==0 and i%5!=0:
        list1.append(i)
for i in list1:
    print(i, end=',')#或者用print(','.join(l))  ,用于把字符串用S符号连接起来

5.编写一个程序,可以计算给定数字的阶乘。假设为程序提供了以下输入:8,输出应该是:40320

解题思路:可定义函数并用递归,或者用for循环。

a=int(input('请输入一个数:'))
b=1
for i in range(1,a+1):
    b=b*i
print(b)

6.使用给定的整数n,编写程序以生成包含(i:i * i)的字典这是1和n之间的整数(包括两者)。 然后是程序应该打印字典。假设为程序提供了以下输入:8,输出结果:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}

解题思路:定义一个字典,用for循环。

n=int(input('请输入一个数:'))
d=dict()
for i in range(1,n+1):
    d[i]=i*i

print(d)

7.输入一串数字,以逗号为分隔符,将其转换成列表和元组输入:34,67,55,33,12,98  输出: [’34’, ’67’, ’55’, ’33’, ’12’, ’98’]   (’34’, ’67’, ’55’, ’33’, ’12’, ’98’)

解题思路:注意字符串分隔方法。

value=input('请输入一串数字:')
a=value.split(',')
print(a)
b=tuple(a)
print(b)

8.定义一个至少包含两种方法的类:getString:从控制台输入中获取字符串printString:以大写形式打印字符串。

解题思路:注意定义类的格式。

class A():
    def getString(self):
        self.x =input('请输入一个字符串:')
    def printString(self):
        print(self.x.upper())
a=A()
a.getString()
a.printString()

9.编写一个程序,根据给定的公式计算并打印该值:Q = [(2 * C * D)/ H]的平方根以下是C和H的固定值:C是50.H是30。D是变量,其值应以逗号分隔的顺序输入到程序中。输入:100,150,180,输出:18,22,24

解题思路:导入math函数,注意输入输出格式。

import math
c=50
h=30
d=input('请输入:')
list1=d.split(',')
m=list1[-1]
for i in list1:
    i=int(i)
    q=int(math.sqrt((2*c*i)/h))
    if i !=int(m):
        print(q,end=',')
    else:
        print(q,end='')

10.编写一个程序,X,Y作为输入,并生成一个X行,N列的二维数组。数组的第i行和第j列中的元素值应为i * j。

解题思路:注意二维数组的定义方式。

input_str = input()
dimensions = [int(x) for x in input_str.split(',')]
rowNum = dimensions[0]
colNum = dimensions[1]
multilist = [[0 for col in range(colNum)] for row in range(rowNum)]#定义一个空的二维数组

for row in range(rowNum):
    for col in range(colNum):
        multilist[row][col] = row * col

print(multilist)

 


版权声明:本文为mango_ZZY原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。