1、python 生成10个100~1000内的随机数,代码如下:
from random import randint
a = [randint(100,1000) for i in range(10)]
print(a)
2、python冒泡算法,代码如下(降序排列):
a = [9, 2, 8, 6, 4]
for i in range(len(a)-1):
for j in range(len(a)-1-i):
if a[j] < a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
print(a)
运行结果:[9, 8, 6, 4, 2]
如果改为升序排列,代码如下:
a = [9, 2, 8, 6, 4]
for i in range(len(a)-1):
for j in range(len(a)-1-i):
if a[j] > a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
print(a)
运行结果:[2, 4, 6, 8, 9]
3、判断字符串是回文的算法:
s = input('请输入一个字符串:')
if not s:
print('请不要输入空字符串!')
s = input('请重新输入一个字符串:')
a = len(s)
i = 0
count = 1
while i <= (a/2):
if s[i] == s[a-i-1]:
count = 1
i += 1
else:
count = 0
break
if count == 1:
print('您所输入的字符串是回文')
else:
print('您所输入的字符串不是回文')
4、有1、2、3、4数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填写个、十、百位的数字都有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)
5、企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
注:利用数轴来分界定位,定义时需把奖金定义成长整型。
bon1 = 100000*0.1
bon2 = bon1 + 100000*0.075
bon4 = bon2 + 200000*0.05
bon6 = bon4 + 200000*0.03
bon10 = bon6 + 400000*0.015
i = int(input('input gain:\n'))
if i <= 100000:
bon = i*0.1
elif i <= 200000:
bon = bon1 + (i - 100000)*0.075
elif i <= 400000:
bon = bon2 + (i - 200000)*0.05
elif i <= 600000:
bon = bon4 + (i - 400000)*0.03
elif i<= 1000000:
bon = bon6 + (i - 600000)*0.015
else:
bon = bon10 + (i - 1000000)*0.01
print('bonus = ', bon)
6、一个整数,他加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?
1)程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,既是结果。
import math
for i in range(100000):
x = int(math.sqrt(i + 100))
y = int(math.sqrt(i + 268))
if(x*x == i + 100)and(y*y == i + 268):
print(i)
7、输入某年某月某日,判断这一天是这一年的第几天?
以3月5日为例,应该先把前两个月加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需要考虑多加一天。
year = int(input('year: \n'))
month = int(input('month: \n'))
day = int(input('day:\n'))
months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
if 0 <= month <= 12:
sum = months[month - 1]
else:
print('data error')
sum += day
# 判断年份是否为闰年
if (year%400 == 0)or((year%4 == 0)and(year % 100 != 0)):
leap = 1
if (leap == 1)and(month > 2):
sum += 1
print('it is the %dth day.' %sum )
8、输入三个整数x、y、z,请把这三个数由小到大输出。(主要使用sort函数)
s = []
for i in range(3):
x = int(input("integer:\n"))
s.append(x)
s.sort()
print(s)
9、用*号输出字母C的图案。(先在纸上写出,再分行输出,需要修改)
print('Hello Python world!\n')
print('*'*10)
for i in range(5):
print('* *')
print('*'*10)
print('*\n'*6)
10、输出9乘9口诀表
for i in range(1, 10):
for j in range(1, 10):
result = i * j
# %d叫做占位符,你说的题目中第一个%d在运行时会转换成i的值,第二个%d会转换成j的值,第三个%-3d会转换成result的值,%-3d里面的-3是什么意思,result的长度小于3,也就是是一位数或者是两位数,就左对齐输出数字后面不空格,举例说明吧,加入result是5就输出5后面再跟两个空格;倘若结果是两位数67就输出67后面跟一个空格;倘若result的长度大于或等于3,就输出原数字
print('%d * %d = %-3d'%(i, j, result))