题目1
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
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: print(a, b, c) pass pass
题目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,求应发放奖金总数?
请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
arr = (0, 10, 20, 40, 60, 100) rat = (0, 10, 7.5, 5, 3, 1.5, 1) pro = float(input('净利润(万元):')) fit = 0 for i in range(1, len(arr)): if (pro > arr[i]): fit += (arr[i] - arr[i - 1]) * (rat[i] / 100) else: fit += (pro - arr[i - 1]) * (rat[i] / 100) break print('奖金(元):', fit * 10000)
题目3
一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?
在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。
import math for i in range(10000): n = math.sqrt(i + 100) m = math.sqrt(i + 268) if n % 1 == 0 and m % 1 == 0: print(i)
题目4
输入某年某月某日,判断这一天是这一年的第几天?
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天。
cal = input('日期:') date = cal.split('-') # 拆分日期 year = int(date[0]) month = int(date[1]) day = int(date[2]) arr = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] num = 0 if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0): arr[2] = 29 for i in range(1, len(arr)): if month > i: num += arr[i] else: num += day break print('天数:', num)
题目5
输入三个整数x,y,z,请把这三个数由小到大输出。
我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
arr_str = input('请输入三个整数:\n') arr = arr_str.split() for i in range(len(arr)): arr[i] = int(arr[i]) arr.sort(reverse=False) print('排序结果:\n' + str(arr))
题目6
斐波那契数列。
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
arr = [0, 1] tmp, num = 0, 1 dep = 20 # 数列长度 for i in range(dep - 2): tmp, num = num, tmp + num arr.append(num) print(arr)
题目7
将一个列表的数据复制到另一个列表中。
使用列表[:]。
origin = ['javascript', 'php', 'python'] refer = origin copy = origin[:] # origin.copy() print('变量(0x%x): %s' % (id(origin), str(origin))) print('引用(0x%x): %s' % (id(refer), str(refer))) print('复制(0x%x): %s' % (id(copy), str(copy)))
题目8
输出 9*9 乘法口诀表。
分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1, 10): for j in range(1, i + 1): exp = '%d * %d = %d' % (i, j, i * j) print(exp, end='\t') print()
题目9
模拟Linux用户登录。
验证账号和密码,若失败则延迟三秒输出错误信息。
import time global user, name user = { 'woider': '3243', } def login(): global name name = input('Username:') pswd = input('Password:') if name not in user: return False return user[name] == pswd while (not login()): time.sleep(3) # 暂停3秒 print('Authentication failure') print(name + '@localhost:~