deffunc(profit): arr = [1000000,600000,400000,200000,100000,0] rat = [0.01,0.015,0.03,0.05,0.075,0.1]
tmp = profit res = 0
for idx inrange(0,6): if tmp > arr[idx]: res += (tmp - arr[idx]) * rat[idx] tmp = arr[idx] return res
print(func(120000))
Python 练习实例3
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:
假设该数为 x。
1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。
1 2 3 4 5 6 7 8
for i inrange(1,85): if168 % i == 0: j = 168 / i; if i > j and (i + j) % 2 == 0and (i - j) % 2 == 0 : m = (i + j) / 2 n = (i - j) / 2 x = n * n - 100 print(x)
Python 练习实例4
输入某年某月某日,判断这一天是这一年的第几天?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
deffunc(dt): defis_leap_year(year): return (year % 4 == 0) and (year % 100 != 0) or year % 400 == 0 year , month , day = [int(i) for i in dt.split("-")] month_day = [0,31,28,31,30,31,30,31,31,30,31,30,31]
res = day for idx inrange(month): res += month_day[idx-1]
if is_leap_year(year) and (month >= 3or (month==2and day==29)): res += 1 return res
res = func("2015-6-7") print(res)
Python 练习实例5
输入三个整数x,y,z,请把这三个数由小到大输出。
1 2 3 4 5 6
l = [] for i inrange(3): x = int(raw_input('integer:\n')) l.append(x) l.sort() print l
Python 练习实例6
创建斐波那契数列。
1 2 3 4 5 6 7 8
deffib(n): a,b = 1,1 for i inrange(n-1): a,b = b,a+b return a # 输出了第10个斐波那契数列 print fib(10)
Python 练习实例7
将一个列表的数据复制到另一个列表中。
1 2 3
a = [1, 2, 3] b = a[:] print b
Python 练习实例8
输出 9*9 乘法口诀表。
1 2 3 4 5
deffunc(): for i inrange(1,10): for j inrange(1,i+1): print(f"{i}*{j}={i*j}\t",end="") print()
Python 练习实例9
暂停一秒输出。
1 2 3 4 5 6
import time myD = {1: 'a', 2: 'b'} for key, value indict.items(myD): print(key, value) time.sleep(1) # 暂停 1 秒
Python 练习实例10
暂停一秒输出,并格式化当前时间。
1 2 3 4 5 6 7 8
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())))
f1 = 1 f2 = 1 for i inrange(1,22): print('%12ld %12ld' % (f1,f2)) if (i % 3) == 0: print'' f1 = f1 + f2 f2 = f1 + f2
Python 练习实例12
判断101-200之间有多少个素数,并输出所有素数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
h = 0 leap = 1 from math import sqrt from sys import stdout for m inrange(101,201): k = int(sqrt(m + 1)) for i inrange(2,k + 1): if m % i == 0: leap = 0 break if leap == 1: print'%-4d' % m h += 1 if h % 10 == 0: print'' leap = 1 print'The total is %d' % h
from sys import stdout for j inrange(2,1001): k = [] n = -1 s = j for i inrange(1,j): if j % i == 0: n += 1 s -= i k.append(i) if s == 0: print j for i inrange(n): stdout.write(str(k[i])) stdout.write(' ') print k[n]1
for i inrange(ord('x'),ord('z') + 1): for j inrange(ord('x'),ord('z') + 1): if i != j: for k inrange(ord('x'),ord('z') + 1): if (i != k) and (j != k): if (i != ord('x')) and (k != ord('x')) and (k != ord('z')): print'order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k))
Python 练习实例23
打印出如下图案(菱形):
1 2 3 4 5 6 7
* *** ***** ******* ***** *** *
1 2 3 4 5 6 7 8 9
deffunc(floor): max_star = 1 + (floor - 1)* 2 for i inrange(1,max_star+1,2): white = int((max_star - i) / 2) print("{}{}{}".format(' '*white,'*'*i,' '*white)) for i inrange(max_star-2,0,-2): white = int((max_star - i) / 2) print("{}{}{}".format(' '*white,'*'*i,' '*white))
Python 练习实例24
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
变相斐波那契数列
1 2 3 4 5 6 7 8 9
a = 2.0 b = 1.0 s = 0 for n inrange(1,21): s += a / b t = a a = a + b b = t print s
Python 练习实例25
求1+2!+3!+…+20!的和。
1 2 3 4 5 6 7
n = 0 s = 0 t = 1 for n inrange(1,21): t *= n s += t print'1! + 2! + 3! + ... + 20! = %d' % s
Python 练习实例26
利用递归方法求5!。
1 2 3 4 5 6 7
deffact(j): sum = 0 if j == 0: sum = 1 else: sum = j * fact(j - 1) returnsum
deffunc(num): if num == 1: return10 else: return func(num-1) +2
Python 练习实例29
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
1 2 3 4 5 6 7 8 9 10 11
deffunc(num): dig = 0 while num >= 1: num //= 10 dig += 1 print(dig)
deffunc2(num): while num >= 1: print(num % 10) num = num // 10
Python 练习实例30
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
1 2 3 4 5 6 7 8 9 10 11 12
a = int(raw_input("请输入一个数字:\n")) x = str(a) flag = True for i inrange(len(x)/2): if x[i] != x[-i - 1]: flag = False break if flag: print"%d 是一个回文数!" % a else: print"%d 不是一个回文数!" % a
letter = raw_input("please input:") #while letter != 'Y': if letter == 'S': print ('please input second letter:') letter = raw_input("please input:") if letter == 'a': print ('Saturday') elif letter == 'u': print ('Sunday') else: print ('data error') elif letter == 'F': print ('Friday') elif letter == 'M': print ('Monday') elif letter == 'T': print ('please input second letter') letter = raw_input("please input:") if letter == 'u': print ('Tuesday') elif letter == 'h': print ('Thursday') else: print ('data error') elif letter == 'W': print ('Wednesday') else: print ('data error')
Python 练习实例32
按相反的顺序输出列表的值。
1 2 3
a = ['one', 'two', 'three'] for i in a[::-1]: print i
Python 练习实例33
按逗号分隔列表。
1 2 3
L = [1,2,3,4,5] s1 = ','.join(str(n) for n in L) print s1
Python 练习实例34
练习函数调用。
1 2 3 4 5 6 7 8
defhello_world(): print'hello world' defthree_hellos(): for i inrange(3): hello_world() if __name__ == '__main__': three_hellos()
lower = int(input("输入区间最小值: ")) upper = int(input("输入区间最大值: ")) for num inrange(lower,upper + 1): # 素数大于 1 if num > 1: for i inrange(2,num): if (num % i) == 0: break else: print(num)
if __name__ == "__main__": N = 10 # input data print'请输入10个数字:\n' l = [] for i inrange(N): l.append(int(raw_input('输入一个数字:\n'))) print for i inrange(N): print l[i] print # 排列10个数字 for i inrange(N - 1): min = i for j inrange(i + 1,N): if l[min] > l[j]:min = j l[i],l[min] = l[min],l[i] print'排列之后:' for i inrange(N): print l[i]
Python 练习实例38
求一个3*3矩阵主对角线元素之和。
1 2 3 4 5 6 7 8 9 10
if __name__ == '__main__': a = [] sum = 0.0 for i inrange(3): a.append([]) for j inrange(3): a[i].append(float(raw_input("input num:\n"))) for i inrange(3): sum += a[i][i] printsum
if __name__ == '__main__': # 方法一 : 0 作为加入数字的占位符 a = [1,4,6,9,13,16,19,28,40,100,0] print'原始列表:' for i inrange(len(a)): print a[i], number = int(raw_input("\n插入一个数字:\n")) end = a[9] if number > end: a[10] = number else: for i inrange(10): if a[i] > number: temp1 = a[i] a[i] = number for j inrange(i + 1,11): temp2 = a[j] a[j] = temp1 temp1 = temp2 break print'排序后列表:' for i inrange(11): print a[i],
Python 练习实例40
将一个数组逆序输出。
1 2 3 4 5 6 7
if __name__ == '__main__': a = [9,6,5,4,1] N = len(a) print a for i inrange(len(a) / 2): a[i],a[N - i - 1] = a[N - i - 1],a[i] print a
X = [[12,7,3], [4 ,5,6], [7 ,8,9]] Y = [[5,8,1], [6,7,3], [4,5,9]] result = [[0,0,0], [0,0,0], [0,0,0]] # 迭代输出行 for i inrange(len(X)): # 迭代输出列 for j inrange(len(X[0])): result[i][j] = X[i][j] + Y[i][j] for r in result: print(r)
Python 练习实例45
统计 1 到 100 之和。
1 2 3 4
tmp = 0 for i inrange(1,101): tmp += i print'The sum is %d' % tmp
Python 练习实例46
求输入数字的平方,如果平方运算后小于 50 则退出。
1 2 3 4 5 6 7 8 9 10 11 12 13
TRUE = 1 FALSE = 0 defSQ(x): return x * x print'如果输入的数字小于 50,程序将停止运行。' again = 1 while again: num = int(raw_input('请输入一个数字:')) print'运算结果为: %d' % (SQ(num)) if SQ(num) >= 50: again = TRUE else: again = FALSE
Python 练习实例47
两个变量值互换。
1 2 3
defexchange(a,b): a,b = b,a return (a,b)
Python 练习实例48
数字比较。
1 2 3 4 5 6 7 8 9 10 11
if __name__ == '__main__': i = 10 j = 20 if i > j: print'%d 大于 %d' % (i,j) elif i == j: print'%d 等于 %d' % (i,j) elif i < j: print'%d 小于 %d' % (i,j) else: print'未知'
Python 练习实例49
使用lambda来创建匿名函数。
1 2 3 4 5 6 7 8
MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y MINIMUM = lambda x,y : (x > y) * y + (x < y) * x if __name__ == '__main__': a = 10 b = 20 print'The largar one is %d' % MAXIMUM(a,b) print'The lower one is %d' % MINIMUM(a,b)
Python 练习实例50
输出一个随机数。
1 2 3 4
import random #生成 10 到 20 之间的随机数 print random.uniform(10, 20)
Python 练习实例51
使用按位与 & 。
1 2 3 4 5 6
if __name__ == '__main__': a = 0x77 b = a & 3 print'a & b = %d' % b b &= 7 print'a & b = %d' % b
Python 练习实例52
使用按位或 |
1 2 3 4 5 6
if __name__ == '__main__': a = 077 b = a | 3 print'a | b is %d' % b b |= 7 print'a | b is %d' % b
Python 练习实例53
使用按位异或 ^
1 2 3 4 5 6
if __name__ == '__main__': a = 077 b = a ^ 3 print'The a ^ 3 = %d' % b b ^= 7 print'The a ^ b = %d' % b
if __name__ == '__main__': from Tkinter import * canvas = Canvas(width = 300,height = 300,bg = 'green') canvas.pack(expand = YES,fill = BOTH) x0 = 150 y0 = 100 canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10) canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20) canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50) import math B = 0.809 for i inrange(16): a = 2 * math.pi / 16 * i x = math.ceil(x0 + 48 * math.cos(a)) y = math.ceil(y0 + 48 * math.sin(a) * B) canvas.create_line(x0,y0,x,y,fill = 'red') canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)
for k inrange(501): for i inrange(17): a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k x = math.ceil(x0 + 48 * math.cos(a)) y = math.ceil(y0 + 48 + math.sin(a) * B) canvas.create_line(x0,y0,x,y,fill = 'red') for j inrange(51): a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1 x = math.ceil(x0 + 48 * math.cos(a)) y = math.ceil(y0 + 48 * math.sin(a) * B) canvas.create_line(x0,y0,x,y,fill = 'red') mainloop()
Python 练习实例60
计算字符串长度。
1 2
sStr1 = 'strlen' printlen(sStr1)
Python 练习实例61(important)
打印出杨辉三角形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
if __name__ == '__main__': a = [] for i inrange(10): a.append([]) for j inrange(10): a[i].append(0) for i inrange(10): a[i][0] = 1 a[i][i] = 1 for i inrange(2,10): for j inrange(1,i): a[i][j] = a[i - 1][j-1] + a[i - 1][j] from sys import stdout for i inrange(10): for j inrange(i + 1): stdout.write(str(a[i][j])) stdout.write(' ') print
definp(numbers): for i inrange(6): numbers.append(int(raw_input('输入一个数字:\n'))) p = 0 defarr_max(array): max = 0 for i inrange(1,len(array) - 1): p = i if array[p] > array[max] : max = p k = max array[0],array[k] = array[k],array[0] defarr_min(array): min = 0 for i inrange(1,len(array) - 1): p = i if array[p] < array[min] : min = p l = min array[5],array[l] = array[l],array[5] defoutp(numbers): for i inrange(len(numbers)): print numbers[i] if __name__ == '__main__': array = [] inp(array) # 输入 6 个数字并放入数组 arr_max(array) # 获取最大元素并与第一个元素交换 arr_min(array) # 获取最小元素并与最后一个元素交换 print'计算结果:' outp(array)
if __name__ == '__main__': n = int(raw_input('整数 n 为:\n')) m = int(raw_input('向后移 m 个位置为:\n')) defmove(array,n,m): array_end = array[n - 1] for i inrange(n - 1,-1,- 1): array[i] = array[i - 1] array[0] = array_end m -= 1 if m > 0:move(array,n,m) number = [] for i inrange(n): number.append(int(raw_input('输入一个数字:\n'))) print'原始列表:',number move(number,n,m) print'移动之后:',number
if __name__ == '__main__': nmax = 50 n = int(raw_input('请输入总人数:')) num = [] for i inrange(n): num.append(i + 1) i = 0 k = 0 m = 0 while m < n - 1: if num[i] != 0 : k += 1 if k == 3: num[i] = 0 k = 0 m += 1 i += 1 if i == n : i = 0 i = 0 while num[i] == 0: i += 1 print num[i]
Python 练习实例70
写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
1 2 3
if __name__ == '__main__': s = raw_input('please input a string:\n') print'the string has %d characters.' % len(s)
N = 3 #stu # num : string # name : string # score[4]: list student = [] for i inrange(5): student.append(['','',[]]) definput_stu(stu): for i inrange(N): stu[i][0] = raw_input('input student num:\n') stu[i][1] = raw_input('input student name:\n') for j inrange(3): stu[i][2].append(int(raw_input('score:\n'))) defoutput_stu(stu): for i inrange(N): print'%-6s%-10s' % ( stu[i][0],stu[i][1] ) for j inrange(3): print'%-8d' % stu[i][2][j] if __name__ == '__main__': input_stu(student) print student output_stu(student)
Python 练习实例72
创建一个链表。
1 2 3 4 5 6
if __name__ == '__main__': ptr = [] for i inrange(5): num = int(raw_input('please input a number:\n')) ptr.append(num) print ptr
Python 练习实例73
反向输出一个链表。
1 2 3 4 5 6 7 8
if __name__ == '__main__': ptr = [] for i inrange(5): num = int(raw_input('please input a number:\n')) ptr.append(num) print ptr ptr.reverse() print ptr
Python 练习实例74
列表排序及连接。
1 2 3 4 5 6 7 8 9 10 11 12
if __name__ == '__main__': a = [1,3,2] b = [3,4,5] a.sort() # 对列表 a 进行排序 print a # 连接列表 a 与 b print a+b # 连接列表 a 与 b a.extend(b) print a
Python 练习实例75
算一道简单的题目。
1 2 3 4 5 6 7 8
if __name__ == '__main__': for i inrange(5): n = 0 if i != 1: n += 1 if i == 3: n += 1 if i == 4: n += 1 if i != 4: n += 1 if n == 3: print64 + i
defpeven(n): i = 0 s = 0.0 for i inrange(2,n + 1,2): s += 1.0 / i # Python里,整数除整数,只能得出整数,所以需要使用 浮点数 1.0 return s defpodd(n): s = 0.0 for i inrange(1, n + 1,2): s += 1.0 / i # Python里,整数除整数,只能得出整数,所以需要使用 浮点数 1.0 return s defdcall(fp,n): s = fp(n) return s if __name__ == '__main__': n = int(raw_input('input a number:\n')) if n % 2 == 0: sum = dcall(peven,n) else: sum = dcall(podd,n) printsum
Python 练习实例77
循环输出列表
1 2 3 4
if __name__ == '__main__': s = ["man","woman","girl","boy","sister"] for i inrange(len(s)): print s[i]
Python 练习实例78
找到年龄最大的人,并输出。
1 2 3 4 5 6 7 8
if __name__ == '__main__': person = {"li":18,"wang":50,"zhang":20,"sun":22} m = 'li' for key in person.keys(): if person[m] < person[key]: m = key print'%s,%d' % (m,person[m])
Python 练习实例79
字符串排序。
1 2 3 4 5 6 7 8 9 10 11 12
if __name__ == '__main__': str1 = raw_input('input string:\n') str2 = raw_input('input string:\n') str3 = raw_input('input string:\n') print str1,str2,str3 if str1 > str2 : str1,str2 = str2,str1 if str1 > str3 : str1,str3 = str3,str1 if str2 > str3 : str2,str3 = str3,str2 print'after being sorted.' print str1,str2,str3
if __name__ == '__main__': i = 0 j = 1 x = 0 while (i < 5) : x = 4 * j for i inrange(0,5) : if(x%4 != 0) : break else : i += 1 x = (x/4) * 5 +1 j += 1 print x
if __name__ == '__main__': zi = int(raw_input('输入一个数字:\n')) n1 = 1 c9 = 1 m9 = 9 sum = 9 while n1 != 0: ifsum % zi == 0: n1 = 0 else: m9 *= 10 sum += m9 c9 += 1 print'%d 个 9 可以被 %d 整除 : %d' % (c9,zi,sum) r = sum / zi print'%d / %d = %d' % (sum,zi,r)
Python 练习实例86
两个字符串连接程序。
1 2 3 4 5 6 7
if __name__ == '__main__': a = "acegikm" b = "bdfhjlnpq" # 连接字符串 c = a + b print c
Python 练习实例87
结构体变量传递
1 2 3 4 5 6 7 8 9 10 11 12
if __name__ == '__main__': classstudent: x = 0 c = 0 deff(stu): stu.x = 20 stu.c = 'c' a= student() a.x = 3 a.c = 'a' f(a) print a.x,a.c
Python 练习实例88
读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
1 2 3 4 5 6 7 8
if __name__ == '__main__': n = 1 while n <= 7: a = int(raw_input('input a number:\n')) while a < 1or a > 50: a = int(raw_input('input a number:\n')) print a * '*' n += 1
if __name__ == '__main__': import time import random play_it = raw_input('do you want to play it.(\'y\' or \'n\')') while play_it == 'y': c = raw_input('input a character:\n') i = random.randint(0,2**32) % 100 print'please input number you guess:\n' start = time.clock() a = time.time() guess = int(raw_input('input your guess:\n')) while guess != i: if guess > i: print'please input a little smaller' guess = int(raw_input('input your guess:\n')) else: print'please input a little bigger' guess = int(raw_input('input your guess:\n')) end = time.clock() b = time.time() var = (end - start) / 18.2 print var # print 'It took you %6.3 seconds' % time.difftime(b,a)) if var < 15: print'you are very clever!' elif var < 25: print'you are normal!' else: print'you are stupid!' print'Congradulations' print'The number you guess is %d' % i play_it = raw_input('do you want to play it.')