Python第五章(北理国家精品课 嵩天等)
函数和代码复用
函数的定义和使用
def <函数名>(<参数(0个或多个)>):
<函数体>
return <返回值>
可选参数放在不可选参数之后
*b不定参数
lambda函数返回函数名(特殊情况使用)
<函数名> lambda<参数>:<表达式>
七段数码管绘制
import turtle,time
def drawGap():
turtle.penup()
turtle.fd(5)
def drawLine(draw):
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(digit):
drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date):
turtle.pencolor("red")
for i in date:
if i == '-':
turtle.write("年",font=("Arial",18,"normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i == '=':
turtle.write("月",font=("Arial",18,"normal"))
turtle.pencolor("purple")
turtle.fd(40)
elif i == '+':
turtle.write("日",font=("Arial",18,"normal"))
else:
drawDigit(eval(i))
def main():
turtle.setup(800,350,200,200)
turtle.penup()
turtle.fd(-300)
turtle.pensize(5)
drawDate(time.strftime("%Y-%m=%d+",time.gmtime()))
turtle.hideturtle()
turtle.done()
main()
代码复用与函数递归
函数
对象:属性和方法,在函数之上
count = 0
def hanoi(n,src,dst,mid):
global count
if n == 1:
print("{}{}->{}".format(1,src,dst))
count+=1
else:
hanoi(n-1,src,mid,dst)
print("{}{}->{}".format(n,src,dst))
count+=1
hanoi(n-1,mid,dst,src)
hanoi(50,"A","B","C")
print(count)
PyInstaller库的使用
-h 查看帮助
--clean 清理打包过程中的临时文件
-D,--onedir 默认值,生成dist文件夹
-F,--onefile 在dist文件夹中只生成独立的打包文件
-i<图标文件名.ico> 指定打包程序使用的图标文件
pyinstaller -i curve.ico -F SevenDigitsv1.py
科赫雪花小包裹
#KochDrawV1.py
import turtle
def koch(size,n):
if n==0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.setup(600,600)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level = 3 #
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
main()
Python第五章(北理国家精品课 嵩天等)的更多相关文章
- Python第八章(北理国家精品课 嵩天等)
程序设计方法 8.1体育竞技分析实例 from random import random def printIntro(): print("这个程序模拟两个选手A和B的某种竞技比赛" ...
- Python第六章(北理国家精品课 嵩天等)
一 1.集合类型定义及其操作: 集合用{}表示,元素用逗号分隔,无序,唯一 集合操作符: |:并 -:减 &:交 ^ :补 <= <:判断子集关系 >= >:判断包含关 ...
- Python第四章(北理国家精品课 嵩天等)
一.程序的分支结构 二.身体质量指数BMI #CalBIv1.py height,weight = eval((input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))) ...
- Python第七章(北理国家精品课 嵩天等)
7.1文件的使用 1.1文本类型 文本文件:由单一特定编码组成的文件,如.txt 二进制文件:如.png,.avi 1.2文件的打开和关闭 打开-操作-关闭 <变量名> = open(&l ...
- Python第三章(北理国家精品课 嵩天等)
一.数字类型及其操作 整数:pow(x,y),想算多大,就算多大:以0b或0B开头表示二进制:以0o或0O开头表示八进制:以0x或0X开头表示十六进制. 浮点数:取值范围-10^308至10^308, ...
- Python第二章(北理国家精品课 嵩天等)
一.深入理解Python语言 语法简洁 >13万第三方库 二.Python蟒蛇绘制 #PythonDraw.py import turtle turtle.setup(650,350,200,2 ...
- Python第一章(北理国家精品课 嵩天等)
1.1程序设计基本方法 IPO 分析问题,划分边界,设计算法: 编写程序,调试测试,升级维护. 1.2Python开发环境配置 1.3实例1:温度转换 1.4Python程序语法元素分析 缩进,#添加 ...
- Python第五章__模块介绍,常用内置模块
Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...
- 简学Python第五章__模块介绍,常用内置模块
Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...
随机推荐
- 【转】 HDMI介绍与流程
转自:https://www.cnblogs.com/TaigaCon/p/3840653.html HDMI,全称为(High Definition Multimedia Interface)高清多 ...
- Eclipse+Maven环境下java.lang.OutOfMemoryError: PermGen space及其解决方法
转自 https://blog.csdn.net/qdgengwenfei/article/details/71455432 java.lang.OutOfMemoryError: PermGen ...
- 关于vue中this.attr代替this.data.attr访问的原理
请看如下例子: var obj = { name:"zhuwei", age:18 } function Person(data){ this.data = data; } var ...
- Git更改用户名与回退操作
1. 更改本地用户名和邮箱 git config --global user.name "Your_username" git config --global user.email ...
- Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet
一个地图上有若干障碍,问允许出现一个障碍的最大子矩形为多大? 最大子矩形改编 #include<bits/stdc++.h> using namespace std; #define re ...
- 搭建iview环境
一.最快捷方式安装: $ npm install iview --save 二.一般在 webpack 入口页面 main.js 中如下配置: import Vue from 'vue'; impor ...
- 『链接』Microsoft Visual C Redistributable/VC 再发行库 下载哪家强?
http://www.standaloneofflineinstallers.com/2015/12/Microsoft-Visual-C-Redistributable-2015-2013-2012 ...
- 【Linux】gdb调试
g++ -g ... gdb l 列出代码,回车键继续 break main / 行号 加断点 n 单步运行 s 单步运行(可进入函数) p 输出变量 p *array@len ...
- gevent模块学习(一)
1.Event类,事件主要用于Greenlet之间的异步通信 e = gevent.event.Event() -> Event 说明: 创建一个信号对象 e.set() -> None ...
- python数据结构与算法之单链表
表的抽象数据类型 ADT list: #一个表的抽象数据类型 List(self) #表的构造操作,创建一个空表 is_empty ...