python经典例题100题
【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
ans = [i*100+j*10+k 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] print(ans)View Code
【程序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,求应发放奖金总数?

m = float(input('Enter the profit:')) arr = [1000000,600000,400000,200000,100000,0] rat = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for i in range(0,6): if m>arr[i]: r+=(m-arr[i])*rat[i] print ((m-arr[i])*rat[i]) print(r)View Code
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

import math num =1 while 1: if math.sqrt(num+100)-int(math.sqrt(num+100)) ==0 and math.sqrt(num+268)-int(math.sqrt(num+268))==0: print(num) break num+=1View Code
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
# 方法1, 用time模块的strptime方法来解析日期字符串成为时间对象 import time, datetime date_str = '2017-10-19' fmt = '%Y-%m-%d' time_tuple = time.strptime(date_str, fmt) year, month, day = time_tuple[:3] print(year,month,day)

import datetime import time dd = str(input('Enter the datetime:(20151215):')) dt = datetime.datetime.strptime(dd, "%Y%m%d") #转化为日期 print(dt) another_dd =dd[:4] +'0101' #取前4位 another_dt = datetime.datetime.strptime(another_dd, "%Y%m%d") #转化为日期 print(another_dt) print (int((dt-another_dt).days) + 1)View Code
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。

x = input('please input num1:') y = input('please input num2:') z = input('please input num3:') i = sorted([x,y,z]) j = sorted([x,y,z],reverse=True) # 降序 print(i) print(j)View Code
【程序8】
题目:输出9*9口诀。
【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数。

from math import sqrt def main(): for i in range(101,201): flag = 1 k = int(sqrt(i)) for j in range(2,k+1): if i%j == 0: flag = 0 break if flag == 1: print(i) if __name__ == "__main__": main()View Code
【程序13】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

def dd(): for i in range(100,1000): a = i%10 # 取余,得到个位数 b = int(i/100) # 取整,得到百位数 c = (int(i/10))%10 #先取整后取余,得到十位数 if i == a**3+b**3+c**3: print(i) if __name__ == "__main__": dd()View Code
【程序14】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

def main(): n = int(input('Enter a number:')) while(n!=1): for i in range(2,n+1): # 除以非 1 的数 if (n%i)==0: # 若能整除 n/=i # 用n去除以那个整除数 if(n == 1): # 如果整除自己 会得到1,否则自己循环 print(n) else: print(i) print(n) # ????如何动态的接收 i,是一个问题 break if __name__ == "__main__": main()View Code
升级版: 添加一个列表:

def main(): n = int(input('Enter a number:')) arr=[] while(n!=1): for i in range(2,n+1): # 除以非 1 的数 if (n%i)==0: # 若能整除 n/=i # 用n去除以那个整除数 if(n == 1): # 如果整除自己 会得到1,否则自己循环 print(n) else: #print(i) arr.append(i) arr.append(int(n)) break print(arr) if __name__ == "__main__": main()View Code

更多精彩