新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
难度:★★☆☆☆
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了崇明免费建站欢迎大家使用!
类型:几何
方法:拒绝采样
力扣链接请移步 本题传送门
更多力扣中等题的解决方案请移步 力扣中等题目录
给定圆的半径和圆心的 x、y 坐标,写一个在圆中产生均匀随机点的函数 randPoint 。
说明:
输入值和输出值都将是浮点数。
圆的半径和圆心的 x、y 坐标将作为参数传递给类的构造函数。
圆周上的点也认为是在圆中。
randPoint 返回一个包含随机点的x坐标和y坐标的大小为2的数组。
示例 1:
输入:
["Solution","randPoint","randPoint","randPoint"]
[[1,0,0],[],[],[]]
输出: [null,[-0.72939,-0.65505],[-0.78502,-0.28626],[-0.83119,-0.19803]]
示例 2:
输入:
["Solution","randPoint","randPoint","randPoint"]
[[10,5,-7.5],[],[],[]]
输出: [null,[11.52438,-8.33273],[2.46992,-16.21705],[11.13430,-12.42337]]
输入语法说明:
输入是两个列表:调用成员函数名和调用的参数。Solution 的构造函数有三个参数,圆的半径、圆心的 x 坐标、圆心的 y 坐标。randPoint 没有参数。输入参数是一个列表,即使参数为空,也会输入一个 [] 空列表。
我们在以圆心为中心,以二倍半径为边长的正方形内部进行随机选点,当点落在圆内或者圆上时,满足条件,返回该点。
我们可以把上面的直角坐标变换为极坐标,随机的选取角度和半径,生成的点一定在圆上或者圆内。这里需要注意,由于在平面维度是均匀采样的,生成随机半径时需要对结果开方。
如有疑问或建议,欢迎评论区留言~
有关更多力扣中等题的python解决方案,请移步 力扣中等题解析
根据圆的面积公式和周长公式,导入math库获得Π的值(math.pi),利用input函数获得圆的半径值,编写计算公式,利用format()函数指定字符串格式输出含两位小数的圆的面积和周长。代码如下:
主要含义:
将程序设计和数学巧妙地结合起来,从简单的项目开始,应用Python解决高中和大学低年级的数学问题,比如几何、概率、统计以及微积分等,为进一步学习更复杂的数学内容以及Python编程语言打下坚实的基础。
本书也可作为Python初学者的入门读物,通过学习书中的示例程序和完成那些编程挑战,读者可以提高自己的编程能力和技巧。
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。
python有两种编程方式,交互式和文件式。
交互式:对每个输入语句即时运行结果------适合语法练习
文件式:批量执行一组语句并运行结果------编程的主要方式
实例1:圆面积的计算(根据半径r计算圆面积)
上图明显是交互式运行的结果,如果想编辑文件式运行,则先编辑一个calcircle.py文件,将上述代码写进去。
然后输入代码 python calcircle.py,命令界面即可输出代码结果。
下面我们试试绘制多个同心圆的代码:
1 import turtle 2 turtle.pensize(2) 3 turtle.circle(10) 4 turtle.circle(40) 5 turtle.circle(80) 6 turtle.circle(160) 7 turtle.done()
运行结果,如下图所示
下面我们稍微分析一下这段代码
import turtle#导入海龟库 turtle.pensize(2)#设置画笔的大小 turtle.circle(10)#画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 turtle.circle(40) turtle.circle(80) turtle.circle(160) turtle.done()#必须是乌龟图形程序中的最后一个语句
关于turtle库的使用,之后还会提及,turtle库是python的自带库,绘制图像相对来说比较方便,容易理解
当然上述的代码也可以这样写
1 from turtle import * 2 pensize(2) 3 circle(10) 4 circle(40) 5 circle(80) 6 circle(160) 7 done()
大家很容易发现他们的不同,就是第一句的区别,关于import的用法也将在后续章节详细讲述。
下面我们来画一个难一点的图形
from turtle import * color('red','black')#前一个颜色是线条色,后一个是填充色 begin_fill()#从这里开始填充 for i in range(5):#画五笔就可以结束 fd(200) rt(144)#向右旋转144度 end_fill()#结束填充 done()
下面我们从一个简单的小程序来分析python的语法体系
我们大家都知道,华氏温度和摄氏温度之间的转换,我们可以用python编程实现
TempStr = input("请输入带有符号的温度值: ")#input显示的内容出现在屏幕上,且返回一个str类型的字符串 if TempStr[-1] in ['F', 'f']:#如果最后一个字符是F C = (eval(TempStr[0:-1]) - 32)/1.8#eval将字符串转换成数字 print("转换后的温度是{:.2f}C".format(C))#格式化输出 elif TempStr[-1] in ['C', 'c']: F = 1.8*eval(TempStr[0:-1]) + 32 print("转换后的温度是{:.2f}F".format(F)) else: print("输入格式错误")
缩进:缩进表达程序的格式框架
1、严格明确:缩进是语法的一部分,缩进不正确程序运行错误
2、所属关系:表达代码间包含层次关系的唯一手段
3、长度一致:使用TAB键即可
python编程语言有一个重要的特点就是取消了{ }而用缩进的方式进行代码块的分割,初学者可能不习惯,多写几次就习惯了这种写法。
注释:不被程序执行的辅助性说明信息
单行注释:
#这是单行注释
多行注释:
1 ''' 这是多行注释 2 3 23333333333333 '''
变量:程序中用于保存和表示数据的占位符号
变量采用标识符(名字)来表示,关联标识符的过程叫命名
TempStr是变量名字
可以使用等号(=)向变量赋值或修改值,=被称为赋值符
TempStr="82F" #向变量TempStr赋值"82F"
命名规则:大小写字母、数字、下划线和汉字等字符
如:TempStr、Python_Great
注意事项:大小写敏感、首字符不能是数字、不与保留字相同
python与Python是不同的变量,123Python是不合法变量
保留字
被编程语言内部定义并保留使用的标识符
python语言有33个保留字(也叫关键字)
if,elif,else,in
保留字是编程语言的基本单词,大小写敏感
if是保留字,If是变量
保留字
数据类型
字符串、整数、浮点数、列表
10011101该如何解释呢?
这是一个二进制数字或十进制数字
作为二进制数字,10011101的值是十进制157
这是一段文本或者用逗号分隔3个数字
作为一段文本,逗号是文本中的一部分,一共包含10个字符
整数类型10011101
字符串类型:"10,011,101"
列表类型:[10,011,101]
字符串:由0个或多个字符组成的有序字符序列
由一对双引号或一对单引号表示
"helloworld"或'GOOD'
字符串是字符的有序序列,可以对其中字符进行索引
如"你"是"你好啊"这个字符串的第0个字符
python的字符串序号,正向递增,反向递减
字符串的使用
使用[ ]获取字符串中一个或多个字符
1 TempStr = input("请输入带有符号的温度值: ") 2 if TempStr[-1] in ['F', 'f']:#TempStr[-1]指的是最后一个字符 3 C = (eval(TempStr[0:-1]) - 32)/1.8#TempStr[0:-1]指的是字符串从第一个到最后一个之前的所有字符串 4 print("转换后的温度是{:.2f}C".format(C)) 5 elif TempStr[-1] in ['C', 'c']: 6 F = 1.8*eval(TempStr[0:-1]) + 32 7 print("转换后的温度是{:.2f}F".format(F)) 8 else: 9 print("输入格式错误")
数字类型:整数和浮点数
整数:数学中的整数
32或-89
浮点数:数学中的实数,带有小数部分
1.8或者-1.8或者-1.0
列表类型:由0个或多个数据组成的有序序列
列表使用[ ]表示,采用逗号分隔各元素
[ 'F' , 'f' ]表示列表里含义两个元素'F'和'f'
使用保留字in判断一个元素是否在列表中
TempStr[-1] in ['C' , 'c']判断前者是否与列表中的某个元素相同
赋值语句:由赋值符号构成的一行代码
赋值符号笔者之前提过,就是我们俗称的等于号,但等于号在编程语言中通常表示赋值,不表示等于号的含义。
1、赋值语句用来给变量赋予新的数据值
C = (eval(TempStr[0:-1]) - 32)/1.8 #右侧运算结果值赋值给C
2、赋值语句右侧的数据类型同时作用于变量
TempStr = input("请输入带有符号的温度值: ") #input返回一个字符串,所以TempStr也是字符串
分支语句:由判断条件决定程序运行方向的语句
1 if TempStr[-1] in ['F', 'f']:
如果条件为True则执行冒号后的语句
2、每个保留字所在行最后存在一个冒号:,是语法的一部分
冒号及后续缩进用来表示后续语句与条件的所属关系
函数:根据输入参数产生不同输出的功能过程
类似于数学中的函数,y=f(x)
print("输入格式错误") #打印出 输入格式错误
函数采用函数名(参数)的方式使用
1 eval(TempStr[0:-1])#TempStr[0:-1]是参数
python的输入输出
input():从控制台获得用户输入的函数
input()函数的使用格式:
1 变量=input (提示信息字符串)
用户输入的信息以字符串类型保存在变量中
1 TempStr=input("请输入") #TempStr保存用户输入的信息
输出函数print()
以字符形式向控制台输出结果的函数
print()函数的基本使用格式
1 print(拟输出字符串或字符串变量)
字符串类型的一对引号仅在程序内部使用,输出无引用
1 print("输入格式错误")#向控制台输出 输入格式错误
print函数的格式化:
1 print("转换后的温度是{:.2f}C".format(C))
{ }表示槽,后续变量填充到槽中
{:.2f}表示将变量C填充到这个位置时取小数点后2位
如果C的值是123.456789,则输出结果为123.45C
评估函数eval():去掉参数最外侧引号并执行余下语句的函数
eval的基本使用格式
1 eval(字符串或字符串变量)
eval("1") 1
pythoncircle函数画花瓣计算角度方法如下:
1、通过圆的半径来绘制圆形,使用方法则为turtle.circle(radius),括号里面可以放置参数,当半径为负数的时候,画笔就会往左边开始绘制,就相当于这个圆是逆时针绘制,当半径为正数时,就会为顺时针绘制。
2、通过圆弧来绘制,使用方法就是turtle.circle(extent),圆弧对应圆心角,当为正数时,画笔往前绘制圆弧,当为负数时,则往后绘制圆弧。
import turtle
turtle.showturtle() #屏幕上显示出来海龟绘图,终端中会用到
turtle.penup() #抬起画笔,此时画笔的移动不会留下痕迹
turtle.pendown() #放下画笔,此时画笔的移动会留下痕迹
turtle.pensize(3) #笔粗为3
turtle.goto(-200,100) #将画笔移动到(-200,100)坐标
turtle.color("red") #设定画笔的颜色为红色
turtle.circle(100) #以当前画笔所在点为圆最下端开始画半径为100的圆
turtle.circle(100,steps=n) #绘制一个周长为100,的n边形
turtle.forward(200) #将画笔前进200
turtle.backward(100) #将比后退100
turtle.right(70) #将画笔箭头的方向向右移70度
turtle.left(90) #将画笔箭头的方向向左移90度
turtle.stamp() #复制当前图形
turtle.write("hello,小朋友",font=('宋体',20,"normal")) #添加括号里的字符,font设置字符字体,大小以及作用
turtle.reste() #重置
turtle.hideturtle() #将画笔隐藏
turtle.done() #把所绘图显示出来,不关闭绘图软件
给绘制的图形填充颜色
turtle.begin_fill()
turtle.circle(100)
turtle.color("yellow")
turtle.end_fill()
1
2
3
4
例:画出奥运五环
import turtle
turtle.color("blue")
turtle.circle(100)
turtle.penup()
turtle.goto(-200,0)
turtle.pendown()
turtle.color("red")
turtle.circle(100)
turtle.penup()
turtle.goto(200,0)
turtle.color("yellow")
turtle.pendown()
turtle.circle(100)
turtle.penup()
turtle.goto(-100,-100)
turtle.color("black")
turtle.pendown()
turtle.circle(100)
turtle.penup()
turtle.goto(100,-100)
turtle.color("black")
turtle.pendown()
turtle.circle(100)
turtle.done()
python表示圆周率的方法:
使用“import”语句导入math包。“math.pi”函数可以获取到圆周率,那么就可以用“math.pi”函数来表示圆周率
示例如下:
执行结果如下:
更多Python知识,请关注:Python自学网!!