用pythonturtle画简单的图案,pythonturtle简易绘图代码

本篇文章给大家谈谈用python的turtle画炫酷的图,以及用pythonturtle画简单的图案,希望对各位有所帮助,不要忘了收藏本站喔。

这篇文章主要介绍了python慕课版董付国课后题答案,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

2021-07-23 Python嵩天MOOC学习笔记

第三周:基本数字类型

一、数字类型及操作

整数类型

可正可负,没有取值范围限制进制:1010,99(十进制);0b010, -0B101(二进制);0o123,-0o456(八进制);0x9a, -0X89(十六进制)pow(x,y):x的y次幂

浮点数类型

浮点数取值范围为-1038~1038,基本算作无限制运算存在不确定尾数,一般发生在 10-16(二进制小数表示)

0.1 + 0.2 == 0.3
#result: False
round( 0.1 + 0.2 , 1) == 0.3
#result: True

round(x,d): 对x四舍五入,d是小数截取位数科学计数法:4.3e-3, 9.56E5

复数类型

z = 1.23e-3 + 5.6e+89j
z.real
#result: 1.23e-3
z.imag
#result: 5.6e+89

数值运算操作符

x/y :结果是浮点数类型x//y :结果是整除类型,和C语言的x/y一样x % y :取余数x**y :幂运算,x的y次幂;y是小数时也可以开方x+=y适用,包括+ - * / // % **结果生成最宽的类型

数值运算函数

abs divmod powpow(x,y,z)可以只取最后的几位数,即使pow的结果很大甚至超过计算机内存,也可以得到最后的余数round max minint float complex

二、实例分析:天天向上的力量

写函数

def dayUp(df):
    dayup = 1
    for i in range(365):
        if i%7 in [6,0]:
            dayup = dayup * (1-0.01)
        else:
            dayup = dayup * (1+df)
    return dayup

while dayUp(dayfactor) < 37.78:
    dayfactor += 0.001
print("{:.3f}".format(dayfactor))

**round和print内的{:.2f}都是四舍五入不是直接舍弃

三、字符串类型及操作

字符串表示方式

由一对单引号或双引号表示,仅表示单行字符串 “请输入带有符号的温度值:”、“C”由一对三单引号或三双引号,可表示多行字符串 ‘’‘温度 C’’’2的模式如果没有把多行字符串赋值给一个变量则默认其为多行注释优势:可以在字符串中使用单双引号,只要内外不同就行;若既有单引号又有双引号则外层用三单引号

字符串高级用法

一端缺失[x: y: z] z为步长[::-1] 相当于字符串逆序转义符:表示特定字符的本意 "abddks"hcoxm"内部的"仅仅为双引号

字符串操作符

x+y 连接两个字符串n * x 或者 x* n 复制n次字符串xx in s 如果x是s的子串返回True否则False

#获取星期字符串
weekstr = "星期一星期二星期三星期四星期五星期六星期日"
weekId = eval(input())
pos = (weekId - 1) * 3
print(weekstr[pos:pos+3])

weekstr = "一二三四五六七"
print("星期"+weekstr[weekId -1])
#加号处不能用‘,’ ‘,’用在有两个format的时候

字符串处理函数

字符串处理方法 如何理解“方法”:方法特指 a.b() 中的b()

str.lower() str.upper()str.spilt()str.count()str.replace(old, new)str.center(width,[fillchar]) width是分割行的宽度str.strip()(iter)

a = '1'
a.join("12345")
#result: 112131415

字符串类型的格式化 模板字符串.format(逗号分隔的参数) {}:槽

#槽中没有填数字表示默认顺序,如果有填数字则按数字
{1}:计算机{0}的CPU占用率为{2}%.format("2018-10-10","C",10)

槽内部的格式化 填充/对齐/宽度:

"{0:=^20}".format("Python")
#序号0 填充符= ^表示居中对齐 宽度20
"{:10}".format("BIT")
#默认填充空格,默认左对齐

千位分隔/.精度/类型

"{0:,.2f}".format(1234.567)
#result: '12,345.57'

print("{0:,.2f}".format(1234.567))
#result: 12,345.57

"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
#result分别是 二进制 Unicode编码形式 十进制 八进制 十六进制 十六进制(大写)

"{0:e},{0:E},{0:f},{0:%}".format(3.14)
#result分别是 科学计数法e 科学计数法E 普通小数 百分数

四、time库

功能:提供获取系统时间并格式化输出功能;提供系统级精确计时功能,用于程序性能分析

import time
time.<b>()
时间获取
import time

()
#result: 1627182190.1084855
表示从1970年1月1日00:00,以秒为单位的数值

time.ctime()
#result:Sun Jul 25 11:04:24 2021,同上

time.gmtime()
#result: 表示为计算机可处理的时间格式 
'''time.struct_time(tm_year=2021, tm_mon=7, tm_mday=25, tm_hour=3,
 tm_min=5, tm_sec=30, tm_wday=6, tm_yday=206, tm_isdst=0)'''


时间格式化
import time

t = time.gmtime() #注意要用gmtime
time. strftime("%Y-%m-%d %H:%M:%S", t) 
#注意模板的双引号
#result: '2021-7-25 03:09:42'
#控制符见下表

#将一段字符串变成一个计算机可以操作的时间
timeStr = '2018-01-26 12:55:20'
time.strptime(timeStr, "%Y-%m-%d %H:%M:%S")
程序计时:测量起止动作所经历时间
import time

#返回CPU级别的精准时间计数值,单位为秒,连续调用并计算差值才有意义
start = time.perf_counter()
end = time.perf_counter()
end - start
#result = ···
#这里start和end的返回值和()是不一样的

def wait():
	time.sleep(3)
wait()
#定义一个wait函数,之后每次调用wait函数都会休眠3秒
#也就是程序静止3秒后再进行下一步操作

控制符:

五、文本进度条

功能:与时间有关,要能反应程序的运行状况

刷新:后打印的信息覆盖前打印的信息,给print控制,光标回退\r(IDLE屏蔽了\r的功能),win+R+cmd用命令行运行即可

举一反三:perf_counter可以用来评估程序效率;在任何运行时间需要较长的程序都要设计进度条;是人机交互的重要方式

六、练习与测试

①NoneType之所以出现是因为定义了一个变量或函数,却没有值或者返回值,因此会默认值为None。!!!!!!此处注意定义函数后面一定要return

a = input()
print("{:-^20}".format(pow(a,3)))
#这样是不对的,记住input()输入进来的都是字符串类型,如果要进行数字方面的计算一定要 a = eval(input())

③此类报错:

'float' object cannot be interpreted as an integer

要注意a/b的结果是浮点数(尽管结果可能是数学意义上的整数),而range()只能用于整数 原来是这样的,在python2中, ‘整数 / 整数 = 整数’,以上面的 100 / 2 就会等于 50, 并且是整数python用turtle画三角形。 而在python3中, ‘整数/整数 = 浮点数’, 也就是100 / 2 = 50.0, 不过,使用 '//‘就可以达到原python2中’/'的效果。

④ 填充符或者宽度是变量,不能直接用填充格式化输出,用center或者:

print("{0:^{1}}".format(a,N))

⑤凯撒密码:注意大小写字母的Unicode码 大写:65->90 小写:97->122 判断条件的并列关系用and

def change(a):
    if ord(a)>=65 and ord(a)<=90:
        b = chr(65 + (ord(a)+3-65)%26)
    elif ord(a)>=97 and ord(a)<=122:
        b = chr(97 + (ord(a)+3-97)%26)
    else:
        b = a
    return b

str0 = input()
str1 = ''
for i in range(len(str0)):
    str1 += change(str0[i])
print("{}".format(str1))

⑥pow()的结果可以产生复数;科学计数法是浮点数类型;字符超宽,原样输出


原文地址1:https://blog.csdn.net/a17348/article/details/135049867
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值