代码:
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
import turtle as tt.speed(7) #速度设置为快t.up() #提笔t.hideturtle() #隐藏海龟t.fd(120) #前进120t.seth(90) #方向90t.pencolor("red") #颜色-红t.pd() #落笔t.circle(120) #绘制圆t.seth(0) #方向左t.pencolor("black") #轮廓颜色-黑t.fillcolor("yellow") #填充颜色-黄for i in range(12): #循环绘制12个菱形 t.right(30) #菱形首条绘制边与轴线右偏30° t.begin_fill() #开始填充 for j in range(2): #用循环方式绘制四边 t.fd(80) t.left(60) t.fd(80) t.left(120) t.end_fill() #结束填充 t.up() t.home() #海龟复位,原点,方向左 t.seth((i+1)*30) #下一轴线的方向 t.fd(120) t.pd()t.mainloop() #完成后保持图形
代码:
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
n = int(input("请输入一个在2~15之间的正整数:"))#下推一行:前移一位后对应项目相加def down(ls): L1 = ls+[0] L2 = [0]+ls L = [] for i in range(len(L1)): L.append(L1[i]+L2[i]) return L#生成一行def createLine(ls): s = [" "*(3*(n-len(ls)))] for it in ls: s.append('{:<6}'.format(it)) return "".join(s)
lst = [1]allLst = []for i in range(n): print(lst) allLst.append(createLine(lst)) lst = down(lst)
print("\n".join(allLst))
解说: 杨辉三角形行之间的关系,实际是一行左移1位与没有移位的这一行对应项相加,就可以得到下一行(这种方法最适合笔算,编程与标准方法——相邻2项相加没有什么优势):
·
·
·
·
·
·
·
def down(ls): L1 = ls+[0] L2 = [0]+ls L = [] for i in range(len(L1)): L.append(L1[i]+L2[i]) return L
杨辉三角形本来是一个直角三角形,如果要打印出等腰三角形,那么每行就要后推½空档。本文一个数占6个字符,一半就是3个字符。生成一行打印字符串的代码如下:
·
·
·
·
·
def createLine(ls): s = [" "*(3*(n-len(ls)))] for it in ls: s.append('{:<6}'.format(it)) return "".join(s)
用循环生成杨辉三角形,顺便打印每行的列表:
·
·
·
·
·
·
lst = [1]allLst = []for i in range(n): print(lst) allLst.append(createLine(lst)) lst = down(lst)
代码:
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
nums = eval(input())#递归计算最大公约数,大的数减小的数直到相等,查看有关数学资料def gys(num1,num2): if num1 == num2: return num1 if num1 > num2: return gys(num1-num2, num2) else: return gys(num2-num1, num1)n = gys(nums[0],nums[1]) #求最大公约数num1 = nums[0] // n #分子分母同时除以最大公约数num2 = nums[1] // nprint("/".join(map(str,nums)))if num2 == 1: print(num1)else: print("/".join([str(num1),str(num2)]))
使用分数对象的代码:
·
·
·
·
·
·
·
·
·
from fractions import Fractionnum1, num2 = map(int, input().split(','))f = Fraction(num1,num2)num3, num4 = f.numerator, f.denominatorprint("%d/%d" % (num1,num2))if num4 == 1: print(num3)else: print("%d/%d" % (num3,num4))