Python3 From Zero——{最初的意识:008~初级实例演练}
一、构显国际橡棋8x8棋盘
#!/usr/bin/env python3 #-*- coding:utf-8 -*- color_0="\033[41m \033[00m" color_1="\033[46m \033[00m" def line(a, b): for i in range(0,48): if ((i // 8) % 2) == 0: print(a, end='') else: print(b, end='') for x in range(0, 24): if ((x // 4) % 2) != 0: line(color_0, color_1) else: line(color_1, color_0) print('\n', end='')
二、求正整数平方根
#!/usr/bin/env python3 #-*- coding: utf-8 -*- #Author: fanhui num = input("Please input a number: ") num_sqrt = round(float(num)**0.5, 4) print(num, "'s sqrt is ", num_sqrt, sep='')
f@z ~ $ python3 num_sqrt.py Please input a number: 10 10's sqrt is 3.1623
三、求负整数平方根
#!/usr/bin/python3 #-*- coding: utf-8 -*- import cmath num = input("Please input a negative num: ") negative_sqrt = cmath.sqrt(float(num)) print(negative_sqrt)
f@z ~ $ python3 negative_sqrt.py
Please input a negative num: -4
2j
四、三角形面积——海轮公式:√s(s-a)(s-b)(s-c),s=(a+b+c)*1/2,a、b、c分别为三角形三边长度
#!/usr/bin/env python3 #-*- coding: utf-8 -*- #Author: fanhui a = float(input("Please input the first length: ")) b = float(input("Please input the second length: ")) c = float(input("Please input the third length: ")) s = (a + b + c) / 2 area = (s * (s - a) * (s -b) * (s - c)) ** 0.5 print("The triangle's area is: {:,.4f}".format(area))
f@z ~ $ python3 triangle_area.py Please input the first length: 444 Please input the second length: 444 Please input the third length: 444 The triangle's area is: 85,362.3920
五、摄时温度转华氏温度:(X * 1.8) + 32
f@z ~ $ cat temperature.py #!/usr/bin/env python3 #-*- coding: utf-8 -*- temperature = float(input("Please input a Celsius: ")) F = temperature * 1.8 + 32 print("F is: {:.2f}".format(F)) f@z ~ $ python3 temperature.py Please input a Celsius: 22.4 F is: 72.32
六、判断年份是否为闰年:被4整除且不被100整除,或能被400整除
#!/usr/bin/python3 #-*- coding: utf-8 -*- Year = int(input("Please input a Year number: ")) if (Year % 4 == 0 and Year % 100 != 0) or (Year % 400 == 0): print("Yes! It is a leap year.") else: print("No! It is not a leap year.")
f@z ~ $ python3 leap_year.py Please input a Year number: 2100 No! It is not a leap year. f@z ~ $ python3 leap_year.py Please input a Year number: 2000 Yes! It is a leap year. f@z ~ $ python3 leap_year.py Please input a Year number: 2016 Yes! It is a leap year.
七、判断素数(即:质数)
#!/usr/bin/env python3 #-*- coding: utf-8 -*- num = int(input("Please input a Integer:")) if num in [1, 2]: print("Not prime number!") else: for x in range(2, num): if num % x == 0: print("Not prime number!") break else: print("Prime number!")
f@z ~/py_script $ python3 prime_number.py Please input a Integer:1 Not prime number! f@z ~/py_script $ python3 prime_number.py Please input a Integer:2 Not prime number! f@z ~/py_script $ python3 prime_number.py Please input a Integer:3 Prime number! f@z ~/py_script $ python3 prime_number.py Please input a Integer:4 Not prime number! f@z ~/py_script $ python3 prime_number.py Please input a Integer:5 Prime number! f@z ~/py_script $ python3 prime_number.py Please input a Integer:6 Not prime number!
八、整数阶乘:正整数的阶乘等于小于或等于其自身的所有正整数的乘积;0的阶乘为1
#!/usr/bin/env python3 #-*- coding: utf-8 -*- num = int(input("Please input a non-negative integer: ")) if num < 0: print("Sorry! Negative integer has no factorial.") elif num == 0: print("0's factorial is 1") else: factorial = 1 for x in range(1, num + 1): factorial *= x print("{}'s factorial is {}".format(num, factorial))
f@z ~/py_script $ a factorial.py Please input a non-negative integer: 0 0's factorial is 1 f@z ~/py_script $ a factorial.py Please input a non-negative integer: -111 Sorry! Negative integer has no factorial. f@z ~/py_script $ a factorial.py Please input a non-negative integer: 3 3's factorial is 6
九、九九乘法表
#!/usr/bin/env python3 #-*- coding: utf-8 -*- for m in range(1, 10): print('|', end='') for n in range(1, m + 1): print('{}*{}={:2d}|'.format(n, m, n * m), end='') print('\n', end='')
f@z ~ $ python3 99.py
|1*1= 1|
|1*2= 2|2*2= 4|
|1*3= 3|2*3= 6|3*3= 9|
|1*4= 4|2*4= 8|3*4=12|4*4=16|
|1*5= 5|2*5=10|3*5=15|4*5=20|5*5=25|
|1*6= 6|2*6=12|3*6=18|4*6=24|5*6=30|6*6=36|
|1*7= 7|2*7=14|3*7=21|4*7=28|5*7=35|6*7=42|7*7=49|
|1*8= 8|2*8=16|3*8=24|4*8=32|5*8=40|6*8=48|7*8=56|8*8=64|
|1*9= 9|2*9=18|3*9=27|4*9=36|5*9=45|6*9=54|7*9=63|8*9=72|9*9=81|
十、斐波那契数列Fibonacci Number:第0项是0,第1项是第一个1,从第三项开始,每一项都等于前两项之和
#!/usr/bin/env python3 #-*- coding: utf-8 -*- num = int(input('Please input a positive integer: ')) a = 0 b = 1 while b <= num: print(b, end=' ') a, b=b, a+b print('\n', end='')
f@z ~ $ python3 fibonacci.py
Please input a positive integer: 40
1 1 2 3 5 8 13 21 34
十一、阿姆斯特朗数Armstrong:如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数
#!/usr/bin/python3 #-*- coding: utf-8 -*- num = input('Please input a positive integer: ') temp = 0 for x in range(0, len(num)): temp += int(num[x]) ** len(num) if int(num) == temp: print('Your number is an Armstorng Number!') else: print('Your number is not an Armstrong Number!')
f@z ~/py_script $ python3 armstrong.py Please input a positive integer: 407 Your number is an Armstorng Number! f@z ~/py_script $ python3 armstrong.py Please input a positive integer: 100 Your number is not an Armstrong Number!
十二、获取指定期间内的阿姆斯特朗数
#!/usr/bin/env python3 #-*- coding: utf-8 -*- def arms(num): temp = 0 for j in range(0, len(num)): temp += int(num[j]) ** len(num) if temp == int(num): print(num) n1 = int(input('Please input a positive integer: ')) n2 = int(input('Please input another positive integer: ')) if n1 > n2: n1, n2 = n2, n1 print('=' * 40, '\n', 'Armstrong number between {} and {}: '.format(n1, n2)) for i in range(n1, n2 + 1): arms(str(i))
f@z ~ $ a armstrong2.py Please input a positive integer: 500 Please input another positive integer: 100 ======================================== Armstrong number between 100 and 500: 153 370 370 371 407
十三、构显汉诺塔(hanoi)移动轨迹
#!/usr/bin/env python3 #-*- coding: utf-8 -*- def hanoi(n, x='A', y='B', z='C'): if n == 1: print(x, '~>', z) else: hanoi(n - 1, x, z, y) hanoi(1, x, y, z) hanoi(n - 1, y, x, z) num = int(input('Please input a positive integer: ')) hanoi(num)
#!/usr/bin/env python3 #-*- coding: utf-8 -*- import random num = int(input('Please input a positive integer: ')) A = list(range(num - 1, -1, -1)) B = [] C = [] TEMP = [['A', 'B', 'C'], [A, B, C]] while len(C) != num: x = random.choice(TEMP[1]) X = TEMP[0][TEMP[1].index(x)] y = random.choice(TEMP[1]) Y = TEMP[0][TEMP[1].index(y)] if X != Y: if (x[-1:] > y[-1:] or x == []) and y != []: x.append(y.pop()) print(Y, '~>', X, end=' ') elif (y[-1:] > x[-1:] or y == []) and x != []: y.append(x.pop()) print(X, '~>', Y, end=' ') print(C)
十四、最大公约数算法
#!/usr/bin/env python3 #-*- coding: utf-8 -*- def divisor(i, j): if i > j: i, j = j, i for k in range(i, 0, -1): if i % k == 0 and j % k == 0: print("=" * 44, "\n", 'The GCD between {} and {} is: {}'.format(i, j, k)) break n_0 = int(input('Please input a positive integer: ')) n_1 = int(input('Please input another positive integer: ')) divisor(n_0, n_1)
f@z ~ $ python3 GCD.py Please input a positive integer: 24 Please input another positive integer: 54 ============================================ The GCD between 24 and 54 is: 6
十五、显示日历
>>> import calendar >>> print(calendar.month(2016, 9)) September 2016 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
十六、递归斐波那契数列
#!/usr/bin/env python3 #-*- coding: utf-8 -*- def fibo(i): if i < 2: return 1 else: return (fibo(i - 1) + fibo(i - 2)) num = int(input('A positive integer: ')) for j in range(0, num + 1): print(fibo(j))
f@z ~ $ python3 fibo_recursion.py A positive integer: 10 1 1 2 3 5 8 13 21 34 55
89
HADEX_ FROM HELL.