導航:首頁 > 編程語言 > python星空浪漫代碼

python星空浪漫代碼

發布時間:2023-01-24 22:15:24

⑴ 121 11 個案例掌握 python 數據可視化--星際探索

星空是無數人夢寐以求想了解的一個領域,遠古的人們通過肉眼觀察星空,並制定了太陰歷,指導農業發展。隨著現代科技發展,有了更先進的設備進行星空的探索。本實驗獲取了美國國家航空航天局(NASA)官網發布的地外行星數據,研究及可視化了地外行星各參數、尋找到了一顆類地行星並研究了天體參數的相關關系。
輸入並執行魔法命令 %matplotlib inline, 設置全局字型大小,去除圖例邊框,去除右側和頂部坐標軸。

本數據集來自 NASA,行星發現是 NASA 的重要工作之一,本數據集搜集了 NASA 官網發布的 4296 顆行星的數據,本數據集欄位包括:

導入數據並查看前 5 行。

截至 2020 年 10 月 22 日 全球共發現 4296 顆行星,按年聚合並繪制年度行星發現數,並在左上角繪制 NASA 的官方 LOGO 。

從運行結果可以看出,2005 年以前全球行星發現數是非常少的,經計算總計 173 顆,2014 和 2016 是行星發現成果最多的年份,2016 年度發現行星 1505 顆。

對不同機構/項目/計劃進行聚合並降序排列,繪制發現行星數目的前 20 。

2009 年至 2013 年,開普勒太空望遠鏡成為有史以來最成功的系外行星發現者。在一片天空中至少找到了 1030 顆系外行星以及超過 4600 顆疑似行星。當機械故障剝奪了該探測器對於恆星的精確定位功能後,地球上的工程師們於 2014 年對其進行了徹底改造,並以 K2 計劃命名,後者將在更短的時間內搜尋宇宙的另一片區域。

對發現行星的方式進行聚合並降序排列,繪制各種方法發現行星的比例,由於排名靠後的幾種方式發現行星數較少,因此不顯示其標簽。

行星在宇宙中並不會發光,因此無法直接觀察,行星發現的方式多為間接方式。從輸出結果可以看出,發現行星主要有以下 3 種方式,其原理如下:

針對不同的行星質量,繪制比其質量大(或者小)的行星比例,由於行星質量量綱分布跨度較大,因此採用對數坐標。

從輸出結果可以看出,在已發現的行星中,96.25% 行星的質量大於地球。(圖中橫坐標小於 e 的紅色面積非常小)

通過 sns.distplot 介面繪制全部行星的質量分布圖。

從輸出結果可以看出,所有行星質量分布呈雙峰分布,第一個峰在 1.8 左右(此處用了對數單位,表示大約 6 個地球質量),第二個峰在 6.2 左右(大概 493 個地球質量)。

針對不同發現方式發現的行星,繪制各行星的公轉周期和質量的關系。

從輸出結果可以看出:徑向速度(Radial Velocity)方法發現的行星在公轉周期和質量上分布更寬,而凌日(Transit)似乎只能發現公轉周期相對較短的行星,這是因為兩種方法的原理差異造成的。對於公轉周期很長的行星,其運行到恆星和觀察者之間的時間也較長,因此凌日發現此類行星會相對較少。而徑向速度與其說是在發現行星,不如說是在觀察恆星,由於恆星自身發光,因此其觀察機會更多,發現各類行星的可能性更大。

針對不同發現方式發現的行星,繪制各行星的距離和質量的關系。

從輸出結果可以看出,凌日和徑向速度對距離較為敏感,遠距離的行星大多是通過凌日發現的,而近距離的行星大多數通過徑向速度發現的。原因是:近距離的行星其引力對恆星造成的擺動更為明顯,因此更容易觀察;當距離較遠時,引力作用變弱,擺動效應減弱,因此很難藉助此方法觀察到行星。同時,可以觀察到當行星質量更大時,其距離分布相對較寬,這是因為雖然相對恆星的距離變長了,但是由於行星質量的增加,相對引力也同步增加,恆星擺動效應會變得明顯。

將所有行星的質量和半徑對數化處理,繪制其分布並擬合其分布。
由於:

因此,從原理上質量對數與半徑對數應該是線性關系,且斜率為定值 3 ,截距的大小與密度相關。

從輸出結果可以看出:行星質量和行星半徑在對數變換下,具有較好的線性關系。輸出 fix_xy 數值可知,其關系可以擬合出如下公式:

擬合出曲線對應的行星平均密度為:

同樣的方式繪制恆星質量與半徑的關系。

從輸出結果可以看出,恆星與行星的規律不同,其質量與半徑在對數下呈二次曲線關系,其關系符合以下公式:

同樣的方式研究恆星表面重力加速度與半徑的關系。

從輸出結果可以看出,恆星表面對數重力加速度與其對數半徑呈現較好的線性關系:

以上我們分別探索了各變數的分布和部分變數的相關關系,當數據較多時,可以通過 pd.plotting.scatter_matrix 介面,直接繪制各變數的分布和任意兩個變數的散點圖分布,對於數據的初步探索,該介面可以讓我們迅速對數據全貌有較為清晰的認識。

通過行星的半徑和質量,恆星的半徑和質量,以及行星的公轉周期等指標與地球的相似性,尋找諸多行星中最類似地球的行星。

從輸出結果可以看出,在 0.6 附近的位置出現了一個最大的圓圈,那就是我們找到的類地行星 Kepler - 452 b ,讓我們了解一下這顆行星:

數據顯示,Kepler - 452 b 行星公轉周期為 384.84 天,半徑為 1.63 地球半徑,質量為 3.29 地球質量;它的恆星為 Kepler - 452 半徑為太陽的 1.11 倍,質量為 1.04 倍,恆星方面數據與太陽相似度極高。
以下內容來自網路。 開普勒452b(Kepler 452b) ,是美國國家航空航天局(NASA)發現的外行星, 直徑是地球的 1.6 倍,地球相似指數( ESI )為 0.83,距離地球1400光年,位於為天鵝座。
2015 年 7 月 24 日 0:00,美國國家航空航天局 NASA 舉辦媒體電話會議宣稱,他們在天鵝座發現了一顆與地球相似指數達到 0.98 的類地行星開普勒 - 452 b。這個類地行星距離地球 1400 光年,繞著一顆與太陽非常相似的恆星運行。開普勒 452 b 到恆星的距離,跟地球到太陽的距離相同。NASA 稱,由於缺乏關鍵數據,現在不能說 Kepler - 452 b 究竟是不是「另外一個地球」,只能說它是「迄今最接近另外一個地球」的系外行星。

在銀河系經緯度坐標下繪制所有行星,並標記地球和 Kepler - 452 b 行星的位置。

類地行星,是人類寄希望移民的第二故鄉,但即使最近的 Kepler-452 b ,也與地球相聚 1400 光年。

以下通過行星的公轉周期和質量兩個特徵將所有行星聚為兩類,即通過訓練獲得兩個簇心。
定義函數-計算距離
聚類距離採用歐式距離:

定義函數-訓練簇心
訓練簇心的原理是:根據上一次的簇心計算所有點與所有簇心的距離,任一點的分類以其距離最近的簇心確定。依此原理計算出所有點的分類後,對每個分類計算新的簇心。

定義函數預測分類
根據訓練得到的簇心,預測輸入新的數據特徵的分類。

開始訓練
隨機生成一個簇心,並訓練 15 次。

繪制聚類結果
以最後一次訓練得到的簇心為基礎,進行行星的分類,並以等高面的形式繪制各類的邊界。

從運行結果可以看出,所有行星被分成了兩類。並通過上三角和下三角標注了每個類別的簇心位置。
聚類前
以下輸出了聚類前原始數據繪制的圖像。

⑵ python和VB哪個更容易學習入門呢

作為入門,VB學習起來更加容易。

VB6功能固定,簡單易用,有利於教學。看過中小學教材就知道,教學內容只有VB6基本功能的幾十分之一,VB6用起來綽綽有餘。比Python更方便、完備,更適合小白。

比如Python沒有中文界面,就能嚇退99%的普通大眾用戶。頻繁升級和PIP安裝,立即會被網管老師勸退。所以目前中小學教育,教材中大多還是用VB6。至於大學,沒必要學VB,因為中國的VB開發者只有萬分之一幾乎絕跡,距離實用太遠。

Python有趣的擴展更多,應用的領域更廣,適合於個人興趣學習和自學深鑽。真正想做程序員,肯定學Python入門更強大,

(2)python星空浪漫代碼擴展閱讀

由於VB6是商業編程工具,大部分擴展都是專業公司開發的昂貴的控制項(幾千元一個許可),且品種有限。現在VB6早已停止商務發展,擴展能力幾乎為零。VB還可以進行Windows API調用,當然這個有一定使用難度,而且僅限於桌面平台。

而Python作為一個免費開源產品,最大的特點就是星空般綿綿不絕的擴展庫。Python是開源最活躍的語言之一,全世界編程愛好者都貢獻其中,還有谷歌這樣的巨頭贊助和貢獻大量AI庫。Python的擴展庫遍布各個領域,各種應用場景,讓Python的能力擴大了千萬倍。

⑶ 如何用 Python 告白

Python的字面意思就是一種計算機編程代碼的意識,我的理解沒錯的話你想表白的對象應該是學計算機編程的人,如果是你特別喜歡的人我建議你要告白的話還是要學會放長線釣大魚,特別是你不確定他是否喜歡你的情況下,無論是有計劃還是沒計劃失敗的幾率會很大。因此我建議你先打聽清楚他的喜好他的性格特點以及做什麼工作,如果他經常去吃飯的餐廳,他喜歡的電影,他的興趣愛好,是否喜歡健身,收藏漫畫或者喜歡看書啥的。

然後再有計劃地去接近他,當然不要表現得太明顯,你可以在他經常出現的餐廳或者經常辦公的場所出沒,你出現的時候要看時間或者做其他的事情,假裝是恰巧偶遇,然後再上去搭訕。如果他對你不反感就說明他是不討厭你的。

接下來你就可以更進一步了,你可以試著先跟他做朋友,關注他的生活狀態,每次詢問關心他的時候最好都是要假裝不經意間提起的,不要讓他察覺你是有目的的,等他對你沒啥防備心理把你當做好朋友之後,你就可以多約他吃飯散步什麼的,反正有事沒事都可以經常找他幫忙或者讓他陪你一起做。當然,你也可以經常製造一些麻煩讓他幫忙,增進你們之間的感情,如果他在跟你相處的過程中對你不排斥的話,你可以試著慢慢撩他,注意是撩!就是時不時說一些曖昧的話,如果他不反感而且積極回應你的話那你成功的幾率就會大很多。

接下來你需要做的就是讓他慢慢發現你對他的重要性,讓他學會依賴你。需要注意的是,在跟他相處的過程中千萬要記得一定要把你優秀的一面展現給他看,讓他有一個意識覺得你是一個很靠譜可以託付終身的那種人,如果你發現你在他的心裡地位越來越重的時候,那麼你就可以開始你的告白計劃了。在策劃告白計劃的時候你一定要記得根據他的喜好來,如果你有經濟能力的話你可以出大手筆一點,比如如果他喜歡戒指那麼你可以約他出去吃飯,把戒指放在菜單裡面讓他不經意發現,製造浪漫,一定要讓他感受到你的與眾不同跟用心良苦。如果他喜歡電影的話你可以收集他的資料,照片或者拍視頻,製作成一個小影片,然後約他去你家看,給他製造驚喜然後看他反映趁機表白。總之一定要別出心裁,做別人沒做過的,這樣成功的幾率會更大。

⑷ 用python設計程序輸生日判斷星座,及星座簡筆畫。

"""
還有幾個星座符未畫
"""
importturtle
classPh():
def__init__(self):
pass

defAries(self):
turtle.pensize(10)
turtle.seth(190)
turtle.circle(-25,240)
turtle.circle(-300,30)
turtle.seth(-80)
turtle.fd(20)
turtle.seth(80)
turtle.fd(20)
turtle.circle(-300,30)
turtle.circle(25,240)
return"白羊星座符"

defTaurus(self):
turtle.pensize(10)
turtle.seth(-90)
turtle.fd(100)
foriinrange(2):
turtle.seth(190)
turtle.fd(80)
turtle.circle(-20,180)
turtle.fd(80)
turtle.circle(100,30)
turtle.penup()
turtle.seth(100)
turtle.fd(5)
turtle.seth(90)
turtle.pendown()
turtle.circle(-10,180)
turtle.circle(-80,70)
return"金牛星座符"

defGemini(self):
return"雙子星座符"

defCancer(self):
return"巨蟹星座符"

defLeo(self):
return"獅子星座符"

defVirgo(self):
return"處女星座符"

defLibra(self):
return"天秤星座符"

defScorpio(self):
return"天蠍星座符"

defSagittarius(self):
return"射手星座符"

defCapricornus(self):
turtle.pensize(10)
turtle.circle(-20,60)
turtle.seth(-90)
return"魔羯星座符"

defAquarius(self):
return"水瓶星座符"

defPisces(self):
return"雙魚星座符"


classZkz(Ph):

def__init__(self):
pass

defsx(self,year):
y=(year-1972)%12#對12取余
returnshx[y]#從字典shx里依次取對應的生肖,如:1972即余數0,取「鼠」

defxz(self,month,date):
ifdate<d[month-1]:#如果是1.19號,即取d中1月份的20
returnc[month-1]#日期在20號之前,即取對應到c的摩羯座
else:
returnc[month]#否則就是20號之後,下一個水瓶座


if__name__=="__main__":
f1="精力旺盛、活力充沛的星座。性格與愛情多數「橫沖直撞」,但純真的個性里沒有殺傷力,所以不用太擔心"
f2="慢條斯理的星座。凡事總是考慮後再過濾,屬於大器晚成型,情思也比較晚開。他們有超人的穩定性,一旦下賭注,就有把握贏"
f3="變化速度快如風的星座。雙子的雙重性格常搞的別人和自己頭痛萬分,對於事業與愛情,如果肯多花點心思經營,應該會是很好的,但...他們實在是太機靈了"
f4="非常需要愛與安定的星座。愛猜疑的個性,使他們在人生旅途上處處顯得缺乏安全感。但是帶著母愛光輝的巨蟹,為了所愛倒是心甘情願的付出"
f5="講究氣派華麗的星座。獅子是森林之王,理所當然喜歡呼朋引伴,有些耐不住寂寞。他們有沖勁,雖然粗枝大葉,但為人講義氣,也蠻有人緣"
f6="有點挑剔又追求完美的星座。缺乏信心的個性,常在潛意識里責怪自己不夠美好;雖然難免會使心情沉重,但天生的優點就是放得開,不會就此一蹶不振"
f7="愛美又怕空虛的星座。憑借天生的外交本領,能在各色人物之間周旋;但有時也會因為過於顧慮面面俱到,搞的吃力不討好,腦筋常常轉來轉去,當心神經衰弱"
f8="神秘詭譎,令人費疑猜的星座。他們可以很執著,也可以很破壞;在愛情的國度里黑白分明,沒有灰色地帶,他們對於自己的目標相當清楚,一旦確立就往前沖"
f9="自由浪漫也濫情的星座。不愛受約束的個性使他們很怕被捆綁,多情的天性也使他們四處尋求獵物;性情天真,常會傷了人也不自覺,愛他們~就由他們去吧"
f10="嚴謹刻板,穩重老成的星座。雖然他們一向給人呆板的印象,但是呆板的人普遍說來不太耍花樣;不管是在事業或愛情上,他們也都以這份特殊氣質獲勝"
f11="思想超前,理性自重的星座。一樣的不愛受約束,一樣的博愛,但他們還是不同射手座;他們較著重於精神層次的提升,是很好的啟發對象"
f12="多愁敏感,愛作夢、幻想的星座。天生多情,使他們常為情字掙扎,情緒的波動起伏也跟脫不了關系;但他們生性柔弱,很喜歡奉獻,也不會隨意傷人"

b={'白羊座':f1,'金牛座':f2,'雙子座':f3,'巨蟹座':f4,'獅子座':f5,'處女座':f6,'天秤座':f7,'天蠍座':f8,'射手座':f9,'魔羯座':f10,'水瓶座':f11,'雙魚座':f12}
shx={0:"鼠",1:"牛",2:"虎",3:"兔",4:"龍",5:"蛇",6:"馬",7:"羊",8:"猴",9:"雞",10:"狗",11:"豬"}
d=(20,19,21,20,21,22,23,23,23,24,23,22)#按日期順序把每個月的分隔星座的日期列出來,從水瓶座(1月)開始

c=("摩羯座","水瓶座","雙魚座","白羊座","金牛座","雙子座","巨蟹座","獅子座","處女座","天秤座","天蠍座","射手座")
#有了列表d的分隔日期,對應在此分隔日期之前的星座寫入列表c,如:第一個水瓶座的20號之前是摩羯座

sr=input("請輸入您的生日(格式:1992.03.21):")

z=Zkz()
t=sr.split(".")#切片,把sr以「.」分割,變成3個字元串
year=int(t[0])
month=int(t[1])
date=int(t[2])
print("您的生肖是:%s"%z.sx(year))
print("您的星座是:%s"%z.xz(month,date))
print('{0}是{1}'.format(z.xz(month,date),b.get(z.xz(month,date))))

ifz.xz(month,date)is'白羊座':
print(z.Aries())
elifz.xz(month,date)is'金牛座':
print(z.Taurus())
elifz.xz(month,date)is'雙子座':
print(z.Gemini())
elifz.xz(month,date)is'巨蟹座':
print(z.Cancer())
elifz.xz(month,date)is'獅子座':
print(z.Leo())
elifz.xz(month,date)is'處女座':
print(z.Virgo())
elifz.xz(month,date)is'天秤座':
print(z.Libra())
elifz.xz(month,date)is'天蠍座':
print(z.Scorpio())
elifz.xz(month,date)is'射手座':
print(z.Sagittarius())
elifz.xz(month,date)is'魔羯座':
print(z.Capricornus())
elifz.xz(month,date)is'水瓶座':
print(z.Aquarius())
elifz.xz(month,date)is'雙魚座':
print(z.Pisces())

⑸ 用python做星座介紹程序。

"""
*****************輸入出生年月,可以知道生肖、星座、星座符號和星座特點*********************
"""

f1="精力旺盛、活力充沛的星座。性格與愛情多數「橫沖直撞」,但純真的個性里沒有殺傷力,所以不用太擔心"
f2="慢條斯理的星座。凡事總是考慮後再過濾,屬於大器晚成型,情思也比較晚開。他們有超人的穩定性,一旦下賭注,就有把握贏"
f3="變化速度快如風的星座。雙子的雙重性格常搞的別人和自己頭痛萬分,對於事業與愛情,如果肯多花點心思經營,應該會是很好的,但...他們實在是太機靈了"
f4="非常需要愛與安定的星座。愛猜疑的個性,使他們在人生旅途上處處顯得缺乏安全感。但是帶著母愛光輝的巨蟹,為了所愛倒是心甘情願的付出"
f5="講究氣派華麗的星座。獅子是森林之王,理所當然喜歡呼朋引伴,有些耐不住寂寞。他們有沖勁,雖然粗枝大葉,但為人講義氣,也蠻有人緣"
f6="有點挑剔又追求完美的星座。缺乏信心的個性,常在潛意識里責怪自己不夠美好;雖然難免會使心情沈重,但天生的優點就是放得開,不會就此一蹶不振"
f7="愛美又怕空虛的星座。憑借天生的外交本領,能在各色人物之間周旋;但有時也會因為過於顧慮面面俱到,搞的吃力不討好,腦筋常常轉來轉去,當心神經衰弱"
f8="神秘詭譎,令人費疑猜的星座。他們可以很執著,也可以很破壞;在愛情的國度里黑白分明,沒有灰色地帶,他們對於自己的目標相當清楚,一旦確立就往前沖"
f9="自由浪漫也濫情的星座。不愛受約束的個性使他們很怕被捆綁,多情的天性也使他們四處尋求獵物;性情天真,常會傷了人也不自覺,愛他們~就由他們去吧"
f10="嚴謹刻板,穩重老成的星座。雖然他們一向給人呆板的印象,但是呆板的人普遍說來不太耍花樣;不管是在事業或愛情上,他們也都以這份特殊氣質獲勝"
f11="思想超前,理性自重的星座。一樣的不愛受約束,一樣的博愛,但他們還是不同射手座;他們較著重於精神層次的提升,是很好的啟發對象"
f12="多愁敏感,愛作夢、幻想的星座。天生多情,使他們常為情字掙扎,情緒的波動起伏也跟脫不了關系;但他們生性柔弱,很喜歡奉獻,也不會隨意傷人"

a=['白羊','金牛','雙子','巨蟹座','獅子座','處女座','天秤座','天蠍座','射手座','魔羯座','水瓶座','雙魚座']
b={'白羊':f1,'金牛':f2,'雙子':f3,'巨蟹座':f4,'獅子座':f5,'處女座':f6,'天秤座':f7,'天蠍座':f8,'射手座':f9,'魔羯座':f10,'水瓶座':f11,'雙魚座':f12}


defsx(year):

y=(year-1972)%12#對12取余

returnshx[y]#從字典shx里依次取對應的生肖,如:1972即余數0,取「鼠」

defxz(month,date):

d=(20,19,21,20,21,22,23,23,23,24,23,22)#按日期順序把每個月的分隔星座的日期列出來,從水瓶座(1月)開始

c=("摩羯座","水瓶座","雙魚座","白羊座","金牛座","雙子座","巨蟹座","獅子座","處女座","天秤座","天蠍座","射手座")
#a=['白羊','金牛','雙子','巨蟹座','獅子座','處女座','天秤座','天蠍座','射手座','魔羯座','水瓶座','雙魚座']
#i=a.index(xz(month,date))
#print(chr(9800+i),":",end=xz(month,date))

#有了列表d的分隔日期,對應在此分隔日期之前的星座寫入列表c,如:第一個水瓶座的20號之前是摩羯座

ifdate<d[month-1]:#如果是1.19號,即取d中1月份的20

returnc[month-1]#日期在20號之前,即取對應到c的摩羯座

else:

returnc[month]#否則就是20號之後,下一個水瓶座

shx={0:"鼠",1:"牛",2:"虎",3:"兔",4:"龍",5:"蛇",6:"馬",7:"羊",8:"猴",9:"雞",10:"狗",11:"豬"}
sr=input("請輸入您的生日(格式:1992.10.23):")
t=sr.split(".")#切片,把sr以「.」分割,變成3個字元串
year=int(t[0])
month=int(t[1])
date=int(t[2])
print("您的生肖是:%s"%sx(year))
print("您的星座是:%s"%xz(month,date))
i=a.index(xz(month,date))
print(chr(9800+i),":",end=xz(month,date))
print(' ')
print('{0}是{1}'.format(xz(month,date),b.get(xz(month,date))))

閱讀全文

與python星空浪漫代碼相關的資料

熱點內容
鋁膜構造柱要設置加密區嗎 瀏覽:342
考駕照怎麼找伺服器 瀏覽:882
阿里雲伺服器如何更換地區 瀏覽:970
手機app調音器怎麼調古箏 瀏覽:501
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:17
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531
雲伺服器面臨哪些威脅 瀏覽:748
c語言各種編譯特點 瀏覽:177
路由器多種加密方法 瀏覽:604
程序員阻止電腦自動彈出定位 瀏覽:169