python二级

news2024/11/24 15:33:15

python二级Turtle

  • 太阳花
  • 四瓣花
  • 正六边形和圆内切六边形
  • 质数(素数)
  • 鲁棒输入
  • 异常处理
    • python math模块
  • 解密
  • 函数的返回结果是元组类型

太阳花

题目:用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200的太阳花。绘制效果如图:
绘制效果

import turtle
turtle.color('red', 'yellow')  # 画笔色,填充色
turtle.begin_fill() # 开始填充
for i in range(36): # 循环36次。36条边,每个内角360/36=10,
	turtle.fd(200)
	turtle.left(170)  # 旋转角度 180-10 = 170   turtle.left() 和 turtle.right() 都是水平180旋转
turtle.end_fill()

四瓣花

四瓣花
从左上角的花瓣开始绘制

import turtle
for i in range(4):
	turtle.seth(90*(i+1))  # 改变画笔绘制方向
	turtle.circle(50, 90)  # 绘制弧形
	turtle.seth(-90+i*90)
	turtle.circle(50, 90)
turtle.hideturtle()  # 隐藏画笔

turtule.seth()改变画笔绘制方向,参数角度为绝对方向角度
turtle.circle(radius, extend=None)radius为半径, extend绘制多大角度的弧形,不设置时或设置为None时,绘制整个圆形。
turtle.hideturtle()隐藏画笔箭头

正六边形和圆内切六边形

from turtle import *
pensize(5)
# 边长为100像素的正六边形
for i i range(6):
	fd(100)
	right(60)
# 半径为60的红色圆内切六边形
color('red')
circle(60, steps=6)

知识回顾:turtle库
turtle.circle() 有两个参数,第一个参数为圆的半径,第二个参数有两种,一个是圆弧的角度(默认360),另外一种是内切N变形(steps=n)n必须大于等于3.

质数(素数)

判断是否是素数(从2开始(大于1的自然数),因数 只有他本身和1),最小的素数为2

def prime(num):
	if num < 2:  # 小于2不是素数,返回False
		return False
	elif num > 2:
		for i in range(2, num):  # 一个数的因数分布于[2,num)
			if num % i == 0:  # 整除 无余数(取余为零)
				return False
		return True
# list(range(2, 2))  输出为空
def prime(num):
	if num < 2:
		return False
	for i in range(2, num):
		if num % i == 0:
			return False
	return True 

鲁棒输入

题目:
键盘输入一个1~26的数字,对应英文大写字母表的索引,在屏幕上显示输出对应的英文字母。

num = eval(input("请输入一个的1~26数字:"))
ls = [0]
for i in range(65, 91):
	ls.apppend(chr(i))
print("{}".format(ls[num]))	

知识回顾: python字符串
python字符串中每一个字符都是Unicode编码字符
ord(x) :将单个 字符转化为Unicode编码
chr(u) :将Unicode编码转换为对应字符
字符A的Unicode编码是65,字符a的Unicode编码是97

将用户输入的十进制整数,转换为二进制,八进制,和十六进制(大写)屏幕输出

num = int(input('请输入数字:'))
print("对应的二进制数:{0:b}\n八进制数:{0:o}\n十六进制数:{0:X}".format(num))

字符串格式化输出
将参数num同时传入三个槽中,槽中必须填写参数序号。否则会出现IndexError
IndexError: Replacement index 1 out of range for positional args tuple

槽内部格式化配置方式{<参数序号>:<格式控制标记>}

  • 格式控制标记:<填充><对齐<宽度><,><精度><类型>

  • 默认<左对齐,空格填充

  • <,> 数字千分位的分隔符

  • <.精度> 浮点数小数精度/字符串 最大输出长度

  • <类型>:
    整数类型:b二进制 c(Unicode编码对应的字符)d(十进制) o(八进制)x(小写的十六进制表示形式) X(大写的十六进制表示形式)
    浮点数类型 e E f %

题目:输入一个年份。编写一个函数,判断用户输入的是否为闰年。(闰年分为普通闰年和世纪闰年,普通闰年是能被四整除,但是不能被100整除的年份,世纪闰年是能被400整除的年份)

def judge_year(year):
	if year % 4 == 0 and year % 100 != 0:
		return True
	elif year % 400 == 0:
		return True
	return False

year = eval(input('请输入一个年份:'))
if judge_year(year) == False:
	print('{}年不是闰年。'.formant(year))
else:
	print('{}年是闰年。'.format(year))

知识回顾:条件
if 条件表达式为Ture, 执行if 条件下的语句。
elif 检查多个表达式是否为True,为真执行特定代码块中的代码。
知识联系多个判断查找 : 使用映射对象(比如:字典)的最大一个好处就是它的搜索操作比 类似 if-elif-else语句或者是for循环这样的序列查询要快很多。

异常处理

题目:使用python异常处理结构,写对数计算,要求底数大于0且不等于1, 真数大于0, 且输入的必须为实数, 否则抛出对应的异常。

import math
try:
	a = eval(input('请输入底数:'))
	b = eval(input('请输入真数:'))
	c = math.log(b, a)  # math.log(真,底)
except ValueError:  # 每个条件逐一判断
	if a <= 0 and b > 0:
		print('底数必须大于0')
	elif a > 0 and b <= 0:
		print('真数必须大于0')
	elif a <= 0 and b <= 0:
		print('真数和底数都必须大于0')
except ZeroDivisionError:
	print('底数不能为1')
except NameError:
	print('输入必须为实数')
else:
	print(c)

python math模块

import math
菜鸟教程 math模块
math.log(x[, base])使用一个参数,返回x的自然对数
常用函数:

  1. 数学常量
    math.pi 圆周率
    math.e 自然对数的底数
  2. 数学函数 (求绝对值。平方根、幂函数…)
    math.ceil(x) 返回大于等于x的最小整数
    math.floor(x) 返回小于等于x的最大整数
    math.sqrt(x) 返回x的平方根
    math.pow(x, y) 返回x的y次幂
    math.log(x) 返回x的自然对数
    math.log10(x) 返回x的以10为底的对数
    math.degrees(x) 将弧度转换为角度
    math.radians(x) 将角度转换为弧度
  3. 三角函数
    math.sin(x) 返回x的正弦值,x以弧度为单位
    math.cos(x) 返回x的余弦值,x以弧度为单位
    math.tan(x) 返回x的正切值,x以弧度为单位
    math.asin(x) 返回x的反正弦值(弧度)
    math.acos(x) 返回x的反余弦值(弧度)
    math.atan(x) 返回x的反正切值(弧度)
    math.atan2(y, x) 返回给定的X,Y坐标值的反正切值,y/x,弧度制.

解密

将每一个英文字符循环替换为字母列表序列中该字符后第三个字符。
原文字符P,其密文字符C满足如下条件
C = (P+3)mod26
解密方法反之,P = (C-3)mod26
步骤:1.接收用户输入文本 2.加密(对照字母a-z, A-z按照密码算法进行转换,同时输出
其他非英文原样输出。

intxt = input('请输入明文:')
for p in intxt:
	if 'a' <= p <= 'z':
	# 后三个字符的位置用Unicode编码确定,ord(p)-ord('a')+3  循环mod26  从'a'开始,最后转换为字符输出
		print(chr(ord('a')+(ord(p)-ord('a')+3)%26), end="")
	elif "A" <= p <= "Z":
		print(chr(ord('A')+(ord(p)-ord('A')+3)%26), end="")
	else:
		print(p, end="")

# 菱形
...*
..**
.***
****
.***
..**
...*
for i in range(0, 4):
	print(" "*(3-i), end="") #
	print("*"*(i+1))
for i in range(0, 4):
	print(" "*(i+1), end="")
	print("*"*(3-i))

函数的返回结果是元组类型

获得用户输入的一组数字,采用逗号风输入,输出其中的最大值。

data = eval(input('请输入一组数据,以逗号分割:'))
print(max(data))

【答案解析】要把输入的数据中最大值输出,可使用max()方法。input()方法输入的数据是字符串类型,字符串的比较是根据ASCII进行比较的,所以需要使用eval()方法把字符串类型转换Python数值类型,然后max()方法对变量data进行比较,所以空白处应填“max(data)”。

在这里插入图片描述

fo = open('PY301-1.py', 'w')
class Horse():
	def __init__(self, category. age, gender):
		self.category = category
		self.age = age
		self.gender = gender
	def get_descriptive(self):
		self.info = "一匹" + self.category + str(self.age) + "岁的"+ self.gender + "马"
	def write_speed(self, new_speed):
		self.speed = update_speed
		addr = "在草原上奔跑的速度是"
		fo.write(self.info + "," + addr + self.speed + "km/h")
horse = Horse("阿拉伯", 12, "公")
horse.get_descriptive()
horse.update_speed(50)
fo = open("PY301-2.txt", 'w')
class Horse():
	def __init__(self, category. age, gender):
		self.category = category
		self.age = age
		self.gender = gender
	def get_descriptive(self):
		self.info = "一匹" + self.category + str(self.age) + "岁的" +  self.gender + "马"
	def write_speed(self, new_speed):
		self.speed = new_speed
		addr = "在草原上奔跑的速度是"
		fo.write(self.info + "," + addr + self.speed + "km/h")

# 继承Horse  super()方法
class Camel(Horse):
	def __init__(self, category, age, gender):
		super().__init__(category, age, gender)
	def write_speed(self, new_speed):
		self.speed = new_speed
		addr = "在沙漠上奔跑的速度是"
		fo.write(self.info.replace("马", "骆驼")+ addr + self.speed + 'km/h')
		
camel = Camel("双峰", 20, "母")
camel.get_descriptive()
camel.write_speed(40)



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1044912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

感性负载箱与电容负载箱有什么区别?

感性负载箱和电容负载箱在电力系统中的应用场景有所不同&#xff0c;感性负载箱通常用于测试和评估电力系统中的感性负载设备&#xff0c;如电动机和变压器。这些设备在运行过程中会产生感性负载&#xff0c;即对电流的相位差有一定要求。感性负载箱可以通过调节串联的电感元件…

小米科技笔记 | ElasticSearch与Redis底层原理解析

大家好&#xff0c;我是小米&#xff0c;一个热衷于技术分享的小伙伴&#xff01;今天&#xff0c;我们来探讨一下两个非常重要的数据存储和检索工具&#xff1a;ElasticSearch和Redis。虽然它们都是高度优化的工具&#xff0c;但在底层原理上有着明显的区别。接下来&#xff0…

多维时序 | MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络)

多维时序 | MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络) 目录 多维时序 | MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络)&…

Linux IP地址、主机名

查看ip地址指令 ifconfig 如无法使用ifconfig命令&#xff0c;可以安装 yum -y install net-tools ip address show--显示协议地址

AEM TESTPRO K50 ROADSHOW华南区路演

AEM的测试和测量解决方案是由一个具有四十多年经验的团队为企业和汽车客户的解决方案而设计开发的。AEM的解决方案也是专为用户在整个产品生命周期阶段&#xff0c;包括布线和连接器&#xff0c;无论是制造和实验室环境&#xff0c;在安装或日常网络故障排除方面&#xff0c;其…

Zabbix5.0_介绍_组成架构_以及和prometheus的对比_大数据环境下的监控_网络_软件_设备监控_Zabbix工作笔记001

z 这里Zabbix可以实现采集 存储 展示 报警 但是 zabbix自带的,展示 和报警 没那么好看,我们可以用 grafana进行展示,然后我们用一个叫睿象云的来做告警展示, 会更丰富一点. 可以看到 看一下zabbix的介绍. 对zabbix的介绍,这个zabbix比较适合对服务器进行监控 这个是zabbix的…

Win11系统安装WSA 的简单方式

Win11 WSA 的简单安装方式&#xff0c;无需开启Hyper-V&#xff0c;无需下载安装包。 ​ Win11系统安装WSA 1. 开启虚拟机 注&#xff1a;我只开启了虚拟机平台和Bios的虚拟化&#xff0c;其他没有操作&#xff0c;其他人出现问题可以用通过Hyper-v解决&#xff0c;但我并不…

jvm垃圾回收机制概述

一、jvm内存的分区 JVM的内存结构包括五大区域&#xff1a;程序计数器、虚拟机栈、本地方法栈、堆区、方法区。 其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭&#xff0c;因此这几个区域的内存分配和回收都具备确定性&#xff0c;就不需要过多考虑回收…

boost序列化单例3

源码见文章底部。 class singleton 声明了一个静态引用 static T & m_instance; 这个静态引用是用来干嘛的呢&#xff1f;注意到该文件末尾有如下代码&#xff1a; template<class T> T & singleton< T >::m_instance singleton< T >::get_instan…

第8讲:Vue 对象的生命周期

Vue 实例在创建时有一系列初始化步骤——例如&#xff0c;它需要建立数据观察&#xff0c;编译模板&#xff0c;创 建必要的数据绑定。在此过程中&#xff0c;它也将调用一些生命周期钩子&#xff0c;给自定义逻辑提供运行机 会。 生命周期图示 Vue 对象的生命周期函数 1、bef…

04 Zookeeper集群详解

上一篇&#xff1a;03-Zookeeper客户端使用 Zookeeper 集群模式一共有三种类型的角色 Leader: 处理所有的事务请求&#xff08;写请求&#xff09;&#xff0c;可以处理读请求&#xff0c;集群中只能有一个LeaderFollower&#xff1a;只能处理读请求&#xff0c;同时作为 Le…

TCP连接的三次握手与四次挥手【重点】

TCP的运输连接管理概述 TCP是面向连接的协议&#xff0c;它基于运输连接来传送TCP报文段 TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程 TCP运输连接有以下三个阶段 TCP的运输连接管理就是使运输连接的建立和释放都能正常的进行 TCP建立连接的三次握手&a…

ChatGPT 在机器学习中的应用

办公室里一个机器人坐在人类旁边&#xff0c;Artstation 上的流行趋势&#xff0c;美丽的色彩&#xff0c;4k&#xff0c;充满活力&#xff0c;蓝色和黄色&#xff0c; DreamStudio出品 一、介绍 大家都知道ChatGPT。它在解释机器学习和深度学习概念方面也非常高效&#xff0c;…

springboot 简单配置mongodb多数据源

准备工作&#xff1a; 本地mongodb一个创建两个数据库 student 和 student-two 所需jar包&#xff1a; # springboot基于的版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…

csdn未经允许将我的文章设置成vip收费

以前在csdn写了一些笔记&#xff0c;后来不用csdn了&#xff0c;想着留下这些笔记或多或少能帮助其他初学者&#xff0c;就没管它。结果csdn把文章设置成收费了&#xff0c;这个收费不是我本人弄的&#xff0c;是csdn弄的&#xff01;我现在只能把这些文章删除掉了。

ThreeJS-3D教学三:平移缩放+物体沿轨迹运动

我们在项目中会有一些这样的需求&#xff0c;我们可视化一个场景&#xff0c;需要俯视、平移、缩放&#xff0c;方便观察场景中的数据或者模型&#xff0c;之所以把这个案例拿出来 1、这是个很实用的需求&#xff0c;我相信很多人会用到 2、我自己认为在实际案例中我们可以学习…

高手必备!电脑剪辑视频的实用方法

随着数码时代的到来&#xff0c;越来越多的人开始使用电脑剪辑视频。电脑剪辑视频不仅可以为日常生活留下美好回忆&#xff0c;还可以为专业人士提供更多的创作可能性。在本文中&#xff0c;我们将介绍两种电脑剪辑视频的方法&#xff0c;不需要专业技能&#xff0c;只需要一台…

精细高效 智慧公厕为城市公共厕所联网管理装上“智慧中枢”

近年来&#xff0c;随着城市化进程的加速&#xff0c;城市公共设施的更新与改进也成为各地的重要任务之一。而其中&#xff0c;城市公共厕所的建设和管理更是备受关注。为了提高公厕的服务水平和城市形象&#xff0c;各地纷纷采取创新的智能化手段&#xff0c;将公厕与互联网技…

MT41K128M16JT DDR3寻址

MT41K128M16JT该DDR3共有27bit地址&#xff0c;分别如下&#xff1a; 因为DDR3控制器IP与DDR3的数据端口是128bit&#xff0c;而ddr3的物理宽度是16bit&#xff0c;所以ddr3写一次地址增加3。 ddr3控制器地址26–0&#xff0c;能访问到的最高地址是26-323。 ddr3控制器给出的地…

在线客服系统源码/在线对话聊天/多商户在线客服系统源码(可机器人自动聊天/支持app公众号网页H5)

源码介绍 在线客服系统源码/在线对话聊天/多商户在线客服系统源码&#xff0c;它是一款基于Web的在线客服系统&#xff0c;适用于实现企业与客户之间的在线沟通以及咨询服务。该系统支持多商户、无限座席&#xff0c;可以为多个企业提供在线客服服务&#xff0c;不受座席数量的…