難度:★★☆☆☆

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了崇明免費(fèi)建站歡迎大家使用!
類型:幾何
方法:拒絕采樣
力扣鏈接請(qǐng)移步 本題傳送門
更多力扣中等題的解決方案請(qǐng)移步 力扣中等題目錄
給定圓的半徑和圓心的 x、y 坐標(biāo),寫一個(gè)在圓中產(chǎn)生均勻隨機(jī)點(diǎn)的函數(shù) randPoint 。
說(shuō)明:
輸入值和輸出值都將是浮點(diǎn)數(shù)。
圓的半徑和圓心的 x、y 坐標(biāo)將作為參數(shù)傳遞給類的構(gòu)造函數(shù)。
圓周上的點(diǎn)也認(rèn)為是在圓中。
randPoint 返回一個(gè)包含隨機(jī)點(diǎn)的x坐標(biāo)和y坐標(biāo)的大小為2的數(shù)組。
示例 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]]
輸入語(yǔ)法說(shuō)明:
輸入是兩個(gè)列表:調(diào)用成員函數(shù)名和調(diào)用的參數(shù)。Solution 的構(gòu)造函數(shù)有三個(gè)參數(shù),圓的半徑、圓心的 x 坐標(biāo)、圓心的 y 坐標(biāo)。randPoint 沒有參數(shù)。輸入?yún)?shù)是一個(gè)列表,即使參數(shù)為空,也會(huì)輸入一個(gè) [] 空列表。
我們?cè)谝詧A心為中心,以二倍半徑為邊長(zhǎng)的正方形內(nèi)部進(jìn)行隨機(jī)選點(diǎn),當(dāng)點(diǎn)落在圓內(nèi)或者圓上時(shí),滿足條件,返回該點(diǎn)。
我們可以把上面的直角坐標(biāo)變換為極坐標(biāo),隨機(jī)的選取角度和半徑,生成的點(diǎn)一定在圓上或者圓內(nèi)。這里需要注意,由于在平面維度是均勻采樣的,生成隨機(jī)半徑時(shí)需要對(duì)結(jié)果開方。
如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~
有關(guān)更多力扣中等題的python解決方案,請(qǐng)移步 力扣中等題解析
根據(jù)圓的面積公式和周長(zhǎng)公式,導(dǎo)入math庫(kù)獲得Π的值(math.pi),利用input函數(shù)獲得圓的半徑值,編寫計(jì)算公式,利用format()函數(shù)指定字符串格式輸出含兩位小數(shù)的圓的面積和周長(zhǎng)。代碼如下:
主要含義:
將程序設(shè)計(jì)和數(shù)學(xué)巧妙地結(jié)合起來(lái),從簡(jiǎn)單的項(xiàng)目開始,應(yīng)用Python解決高中和大學(xué)低年級(jí)的數(shù)學(xué)問(wèn)題,比如幾何、概率、統(tǒng)計(jì)以及微積分等,為進(jìn)一步學(xué)習(xí)更復(fù)雜的數(shù)學(xué)內(nèi)容以及Python編程語(yǔ)言打下堅(jiān)實(shí)的基礎(chǔ)。
本書也可作為Python初學(xué)者的入門讀物,通過(guò)學(xué)習(xí)書中的示例程序和完成那些編程挑戰(zhàn),讀者可以提高自己的編程能力和技巧。
Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的吉多·范羅蘇姆于1990年代初設(shè)計(jì),作為一門叫做ABC語(yǔ)言的替代品。Python語(yǔ)法和動(dòng)態(tài)類型,以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫腳本和快速開發(fā)應(yīng)用的編程語(yǔ)言。
python有兩種編程方式,交互式和文件式。
交互式:對(duì)每個(gè)輸入語(yǔ)句即時(shí)運(yùn)行結(jié)果------適合語(yǔ)法練習(xí)
文件式:批量執(zhí)行一組語(yǔ)句并運(yùn)行結(jié)果------編程的主要方式
實(shí)例1:圓面積的計(jì)算(根據(jù)半徑r計(jì)算圓面積)
上圖明顯是交互式運(yùn)行的結(jié)果,如果想編輯文件式運(yùn)行,則先編輯一個(gè)calcircle.py文件,將上述代碼寫進(jìn)去。
然后輸入代碼 python calcircle.py,命令界面即可輸出代碼結(jié)果。
下面我們?cè)囋嚴(yán)L制多個(gè)同心圓的代碼:
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()
運(yùn)行結(jié)果,如下圖所示
下面我們稍微分析一下這段代碼
import turtle#導(dǎo)入海龜庫(kù) turtle.pensize(2)#設(shè)置畫筆的大小 turtle.circle(10)#畫圓,半徑為正(負(fù)),表示圓心在畫筆的左邊(右邊)畫圓 turtle.circle(40) turtle.circle(80) turtle.circle(160) turtle.done()#必須是烏龜圖形程序中的最后一個(gè)語(yǔ)句
關(guān)于turtle庫(kù)的使用,之后還會(huì)提及,turtle庫(kù)是python的自帶庫(kù),繪制圖像相對(duì)來(lái)說(shuō)比較方便,容易理解
當(dāng)然上述的代碼也可以這樣寫
1 from turtle import * 2 pensize(2) 3 circle(10) 4 circle(40) 5 circle(80) 6 circle(160) 7 done()
大家很容易發(fā)現(xiàn)他們的不同,就是第一句的區(qū)別,關(guān)于import的用法也將在后續(xù)章節(jié)詳細(xì)講述。
下面我們來(lái)畫一個(gè)難一點(diǎn)的圖形
from turtle import * color('red','black')#前一個(gè)顏色是線條色,后一個(gè)是填充色 begin_fill()#從這里開始填充 for i in range(5):#畫五筆就可以結(jié)束 fd(200) rt(144)#向右旋轉(zhuǎn)144度 end_fill()#結(jié)束填充 done()
下面我們從一個(gè)簡(jiǎn)單的小程序來(lái)分析python的語(yǔ)法體系
我們大家都知道,華氏溫度和攝氏溫度之間的轉(zhuǎn)換,我們可以用python編程實(shí)現(xiàn)
TempStr = input("請(qǐng)輸入帶有符號(hào)的溫度值: ")#input顯示的內(nèi)容出現(xiàn)在屏幕上,且返回一個(gè)str類型的字符串 if TempStr[-1] in ['F', 'f']:#如果最后一個(gè)字符是F C = (eval(TempStr[0:-1]) - 32)/1.8#eval將字符串轉(zhuǎn)換成數(shù)字 print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C))#格式化輸出 elif TempStr[-1] in ['C', 'c']: F = 1.8*eval(TempStr[0:-1]) + 32 print("轉(zhuǎn)換后的溫度是{:.2f}F".format(F)) else: print("輸入格式錯(cuò)誤")
縮進(jìn):縮進(jìn)表達(dá)程序的格式框架
1、嚴(yán)格明確:縮進(jìn)是語(yǔ)法的一部分,縮進(jìn)不正確程序運(yùn)行錯(cuò)誤
2、所屬關(guān)系:表達(dá)代碼間包含層次關(guān)系的唯一手段
3、長(zhǎng)度一致:使用TAB鍵即可
python編程語(yǔ)言有一個(gè)重要的特點(diǎn)就是取消了{(lán) }而用縮進(jìn)的方式進(jìn)行代碼塊的分割,初學(xué)者可能不習(xí)慣,多寫幾次就習(xí)慣了這種寫法。
注釋:不被程序執(zhí)行的輔助性說(shuō)明信息
單行注釋:
#這是單行注釋
多行注釋:
1 ''' 這是多行注釋 2 3 23333333333333 '''
變量:程序中用于保存和表示數(shù)據(jù)的占位符號(hào)
變量采用標(biāo)識(shí)符(名字)來(lái)表示,關(guān)聯(lián)標(biāo)識(shí)符的過(guò)程叫命名
TempStr是變量名字
可以使用等號(hào)(=)向變量賦值或修改值,=被稱為賦值符
TempStr="82F" #向變量TempStr賦值"82F"
命名規(guī)則:大小寫字母、數(shù)字、下劃線和漢字等字符
如:TempStr、Python_Great
注意事項(xiàng):大小寫敏感、首字符不能是數(shù)字、不與保留字相同
python與Python是不同的變量,123Python是不合法變量
保留字
被編程語(yǔ)言內(nèi)部定義并保留使用的標(biāo)識(shí)符
python語(yǔ)言有33個(gè)保留字(也叫關(guān)鍵字)
if,elif,else,in
保留字是編程語(yǔ)言的基本單詞,大小寫敏感
if是保留字,If是變量
保留字
數(shù)據(jù)類型
字符串、整數(shù)、浮點(diǎn)數(shù)、列表
10011101該如何解釋呢?
這是一個(gè)二進(jìn)制數(shù)字或十進(jìn)制數(shù)字
作為二進(jìn)制數(shù)字,10011101的值是十進(jìn)制157
這是一段文本或者用逗號(hào)分隔3個(gè)數(shù)字
作為一段文本,逗號(hào)是文本中的一部分,一共包含10個(gè)字符
整數(shù)類型10011101
字符串類型:"10,011,101"
列表類型:[10,011,101]
字符串:由0個(gè)或多個(gè)字符組成的有序字符序列
由一對(duì)雙引號(hào)或一對(duì)單引號(hào)表示
"helloworld"或'GOOD'
字符串是字符的有序序列,可以對(duì)其中字符進(jìn)行索引
如"你"是"你好啊"這個(gè)字符串的第0個(gè)字符
python的字符串序號(hào),正向遞增,反向遞減
字符串的使用
使用[ ]獲取字符串中一個(gè)或多個(gè)字符
1 TempStr = input("請(qǐng)輸入帶有符號(hào)的溫度值: ") 2 if TempStr[-1] in ['F', 'f']:#TempStr[-1]指的是最后一個(gè)字符 3 C = (eval(TempStr[0:-1]) - 32)/1.8#TempStr[0:-1]指的是字符串從第一個(gè)到最后一個(gè)之前的所有字符串 4 print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C)) 5 elif TempStr[-1] in ['C', 'c']: 6 F = 1.8*eval(TempStr[0:-1]) + 32 7 print("轉(zhuǎn)換后的溫度是{:.2f}F".format(F)) 8 else: 9 print("輸入格式錯(cuò)誤")
數(shù)字類型:整數(shù)和浮點(diǎn)數(shù)
整數(shù):數(shù)學(xué)中的整數(shù)
32或-89
浮點(diǎn)數(shù):數(shù)學(xué)中的實(shí)數(shù),帶有小數(shù)部分
1.8或者-1.8或者-1.0
列表類型:由0個(gè)或多個(gè)數(shù)據(jù)組成的有序序列
列表使用[ ]表示,采用逗號(hào)分隔各元素
[ 'F' , 'f' ]表示列表里含義兩個(gè)元素'F'和'f'
使用保留字in判斷一個(gè)元素是否在列表中
TempStr[-1] in ['C' , 'c']判斷前者是否與列表中的某個(gè)元素相同
賦值語(yǔ)句:由賦值符號(hào)構(gòu)成的一行代碼
賦值符號(hào)筆者之前提過(guò),就是我們俗稱的等于號(hào),但等于號(hào)在編程語(yǔ)言中通常表示賦值,不表示等于號(hào)的含義。
1、賦值語(yǔ)句用來(lái)給變量賦予新的數(shù)據(jù)值
C = (eval(TempStr[0:-1]) - 32)/1.8 #右側(cè)運(yùn)算結(jié)果值賦值給C
2、賦值語(yǔ)句右側(cè)的數(shù)據(jù)類型同時(shí)作用于變量
TempStr = input("請(qǐng)輸入帶有符號(hào)的溫度值: ") #input返回一個(gè)字符串,所以TempStr也是字符串
分支語(yǔ)句:由判斷條件決定程序運(yùn)行方向的語(yǔ)句
1 if TempStr[-1] in ['F', 'f']:
如果條件為True則執(zhí)行冒號(hào)后的語(yǔ)句
2、每個(gè)保留字所在行最后存在一個(gè)冒號(hào):,是語(yǔ)法的一部分
冒號(hào)及后續(xù)縮進(jìn)用來(lái)表示后續(xù)語(yǔ)句與條件的所屬關(guān)系
函數(shù):根據(jù)輸入?yún)?shù)產(chǎn)生不同輸出的功能過(guò)程
類似于數(shù)學(xué)中的函數(shù),y=f(x)
print("輸入格式錯(cuò)誤") #打印出 輸入格式錯(cuò)誤
函數(shù)采用函數(shù)名(參數(shù))的方式使用
1 eval(TempStr[0:-1])#TempStr[0:-1]是參數(shù)
python的輸入輸出
input():從控制臺(tái)獲得用戶輸入的函數(shù)
input()函數(shù)的使用格式:
1 變量=input (提示信息字符串)
用戶輸入的信息以字符串類型保存在變量中
1 TempStr=input("請(qǐng)輸入") #TempStr保存用戶輸入的信息
輸出函數(shù)print()
以字符形式向控制臺(tái)輸出結(jié)果的函數(shù)
print()函數(shù)的基本使用格式
1 print(擬輸出字符串或字符串變量)
字符串類型的一對(duì)引號(hào)僅在程序內(nèi)部使用,輸出無(wú)引用
1 print("輸入格式錯(cuò)誤")#向控制臺(tái)輸出 輸入格式錯(cuò)誤
print函數(shù)的格式化:
1 print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C))
{ }表示槽,后續(xù)變量填充到槽中
{:.2f}表示將變量C填充到這個(gè)位置時(shí)取小數(shù)點(diǎn)后2位
如果C的值是123.456789,則輸出結(jié)果為123.45C
評(píng)估函數(shù)eval():去掉參數(shù)最外側(cè)引號(hào)并執(zhí)行余下語(yǔ)句的函數(shù)
eval的基本使用格式
1 eval(字符串或字符串變量)
eval("1") 1
pythoncircle函數(shù)畫花瓣計(jì)算角度方法如下:
1、通過(guò)圓的半徑來(lái)繪制圓形,使用方法則為turtle.circle(radius),括號(hào)里面可以放置參數(shù),當(dāng)半徑為負(fù)數(shù)的時(shí)候,畫筆就會(huì)往左邊開始繪制,就相當(dāng)于這個(gè)圓是逆時(shí)針繪制,當(dāng)半徑為正數(shù)時(shí),就會(huì)為順時(shí)針繪制。
2、通過(guò)圓弧來(lái)繪制,使用方法就是turtle.circle(extent),圓弧對(duì)應(yīng)圓心角,當(dāng)為正數(shù)時(shí),畫筆往前繪制圓弧,當(dāng)為負(fù)數(shù)時(shí),則往后繪制圓弧。
import turtle
turtle.showturtle() #屏幕上顯示出來(lái)海龜繪圖,終端中會(huì)用到
turtle.penup() #抬起畫筆,此時(shí)畫筆的移動(dòng)不會(huì)留下痕跡
turtle.pendown() #放下畫筆,此時(shí)畫筆的移動(dòng)會(huì)留下痕跡
turtle.pensize(3) #筆粗為3
turtle.goto(-200,100) #將畫筆移動(dòng)到(-200,100)坐標(biāo)
turtle.color("red") #設(shè)定畫筆的顏色為紅色
turtle.circle(100) #以當(dāng)前畫筆所在點(diǎn)為圓最下端開始畫半徑為100的圓
turtle.circle(100,steps=n) #繪制一個(gè)周長(zhǎng)為100,的n邊形
turtle.forward(200) #將畫筆前進(jìn)200
turtle.backward(100) #將比后退100
turtle.right(70) #將畫筆箭頭的方向向右移70度
turtle.left(90) #將畫筆箭頭的方向向左移90度
turtle.stamp() #復(fù)制當(dāng)前圖形
turtle.write("hello,小朋友",font=('宋體',20,"normal")) #添加括號(hào)里的字符,font設(shè)置字符字體,大小以及作用
turtle.reste() #重置
turtle.hideturtle() #將畫筆隱藏
turtle.done() #把所繪圖顯示出來(lái),不關(guān)閉繪圖軟件
給繪制的圖形填充顏色
turtle.begin_fill()
turtle.circle(100)
turtle.color("yellow")
turtle.end_fill()
1
2
3
4
例:畫出奧運(yùn)五環(huán)
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”語(yǔ)句導(dǎo)入math包。“math.pi”函數(shù)可以獲取到圓周率,那么就可以用“math.pi”函數(shù)來(lái)表示圓周率
示例如下:
執(zhí)行結(jié)果如下:
更多Python知識(shí),請(qǐng)關(guān)注:Python自學(xué)網(wǎng)!!
網(wǎng)站名稱:python函數(shù)圓形生成 python自定義函數(shù)求圓面積代碼
標(biāo)題來(lái)源:http://www.yijiale78.com/article24/dooehce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、云服務(wù)器、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)