日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

打印dataframe的前十行_小学生之十行Python解高思五星题(一)

發(fā)布時間:2025/3/19 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打印dataframe的前十行_小学生之十行Python解高思五星题(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

自己工作用Python,也想找機會讓自己兒子入門下編程。在陪娃雞了一段時間奧數(shù)后,我覺得Python可以用來解一些小學生奧數(shù)題,在兒子身上實踐后發(fā)現(xiàn)挺適合小學生的理解能力,打算寫幾篇文章無私分享下,如果對其他小朋友有一點點用也是非常高興了。

那為什么要跟高思五星題過不去?從小數(shù)學棒棒的我都覺得高思五星太難,正常的小朋友靠腦力是做不來的,所以就作為目標讓計算機來攻克吧。


準備

推薦Jupyter Notebook,不清楚如何安裝的自行百度,也可以使用Python3.6自帶的IDE開發(fā)。隨便找一本python書,就入門而言隨便什么教材都是OK的。先看完前幾章即可,不用去看復雜的圖形和多媒體操作等章節(jié)。

那什么題目適合編程實現(xiàn)?首先要讓孩子知道電腦的優(yōu)勢是死算,可以化繁為簡地解決問題。也有部分題目需要先運用數(shù)學知識先行一步,再發(fā)揮電腦的運算優(yōu)勢。不管是哪一類題目,我挑選題目的原則是十行代碼搞定,不讓冗長的步驟使小朋友感到恐懼。每題學會一個新的知識點,循序漸進。

適合誰?有奧數(shù)基礎(chǔ),對編程感興趣的孩子

【五年級高思第10講超越篇第7題】a,b,c是三個互不相同的自然數(shù),且滿足abc X bca=7bc X cba,求三位數(shù)abc

書后的解題步驟需要了解同模之類的知識才能讀懂,對我家這樣沒有經(jīng)過幾奧洗禮的小學生來說是太難了,但這樣的題目交給計算機是不難的。只要設(shè)a,b,c三個變量,讓他們循環(huán)組合成不同的組合,然后用if語句驗證是否滿足題目的等式即可。小朋友在學過if和for語法后即可自行完成,非常有成就感的。

for a in range(1,10):

for b in range(1,10):

for c in range(1,10):

if a!=b and a!=c and b!=c:

if(a*100+b*10+c)*(b*100+c*10+a)==(700+b*10+c)*(c*100+b*10+a):

print(a,b,c)

答案是:495

對于熟悉Python的讀者一定會說這樣的寫法還不夠完美,對小朋友來說能寫到這個程度已經(jīng)達到要求了。

【知識點】for循環(huán),if判斷,嵌套

【五年級高思第10講超越篇第8題】已知算式abc x bca x cab = 234235286,其中a>b>c,后來發(fā)現(xiàn)右邊的乘積的數(shù)字順序出現(xiàn)錯誤,但是知道個位數(shù)的6是正確的,那么原式中的abc是多少?

我也是看了答案才知道怎么解,要求一個小學生擁有這么清晰的思路,實在太為難孩子了。和上一題方法完全一致,但更進一步的地方是需要自己再創(chuàng)造兩個條件。雖說順序發(fā)生錯誤,但不管怎么排序也就那么些數(shù)字,這個數(shù)不會小于200000000,也不會大于900000000。另外需要學會的新語法是求余數(shù)的“%”。

for a in range(1,10):

for b in range(1,10):

for c in range(1,10):

if a>b and b>c and (a*b*c-6)%10==0

and (a*100+b*10+c)*(b*100+c*10+a)*(c*100+a*10+b)>200000000

and (a*100+b*10+c)*(b*100+c*10+a)*(c*100+a*10+b)<900000000:

print(a,b,c,(a*100+b*10+c)*(b*100+c*10+a)*(c*100+a*10+b))

程序會打印出以下答案,肉眼看下就知道第三個是本題的答案

8 7 6 462191616

9 6 4 310315456

9 8 3 328245326

【知識點】求余數(shù),隱藏條件解讀

【五年級高思第10講興趣篇第4題】如圖4個小三角形的頂點處有6個小圓圈,在這些圓圈中分別填上6個質(zhì)數(shù)(可以重復),使得他們的和是20,而且每個小三角形3個頂點上的數(shù)之和相等,請問:這6個質(zhì)數(shù)的乘積是多少?

這道題不是5星題,但適合介紹新的編程知識點“List”。前面的題目中的循環(huán)比較簡單,這里的循環(huán)對象是“質(zhì)數(shù)”,所以需要人為創(chuàng)造一個“List”作為循環(huán)取數(shù)的“池子”。“List”是非常重要的概念,在實際工作中還會使用到多維的dataframe,因此先把一維的List掌握好是非常重要的。以下是小朋友寫的:

hi=[2,3,5,7,11,13]

for a1 in hi:

for a2 in hi:

for a3 in hi:

for a4 in hi:

for a5 in hi:

for a6 in hi:

if a1+a2+a3+a4+a5+a6==20 and a1+a2+a3==a2+a4+a5 and

a2+a4+a5==a2+a3+a5 and a2+a3+a5==a3+a5+a6:

print(a1*a2*a3*a4*a5*a6)

答案是900,是對的,但不夠好。在我們熟悉了for循環(huán)的使用方法后,如果遇到這類嵌套多層的for循環(huán)時,其實有更簡潔的編碼方式,再者要有好的編寫習慣,比如可以用mylist去定義質(zhì)數(shù)的數(shù)列,而不是用hi,另外每個小三角形要先計算好,以后遇到更復雜的編碼時可以方便的重用這些計算結(jié)果。參考代碼如下:

mylist = [2,3,5,7,11,13,17]

for i1,i2,i3,i4,i5,i6 in ((x1,x2,x3,x4,x5,x6) for x1 in mylist for x2 in mylist for x3 in mylist for x4 in mylist for x5 in mylist for x6 in mylist):

triangle_1 = i1 + i2 + i3

triangle_2 = i2 + i4 + i5

triangle_3 = i2 + i3 + i5

triangle_4 = i3 + i5 + i6

total = i1 + i2 + i3 + i4 + i5 + i6

if total == 20 and triangle_1 == triangle_2 and triangle_1 == triangle_3 and triangle_1 == triangle_4:

print(i1,i2,i3,i4,i5,i6,' ',i1*i2*i3*i4*i5*i6)

【知識點】List對象,高級for循環(huán)方法

這三題不難,兒子和他的一位小伙伴都可以很順利的完成,讓我感覺到寫程序其實對小朋友也不是一件遙不可及的事情。也不需要用那些圖形化的所謂兒童編程來做過渡。如果學業(yè)壓力不大可以天天練習的話,估計一年下來就可以學成上班了,哈哈,想多了,好久不寫東西了,今天先寫到這里吧。

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的打印dataframe的前十行_小学生之十行Python解高思五星题(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。