日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

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

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


準備

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

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

適合誰?有奧數基礎,對編程感興趣的孩子

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

書后的解題步驟需要了解同模之類的知識才能讀懂,對我家這樣沒有經過幾奧洗禮的小學生來說是太難了,但這樣的題目交給計算機是不難的。只要設a,b,c三個變量,讓他們循環組合成不同的組合,然后用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的讀者一定會說這樣的寫法還不夠完美,對小朋友來說能寫到這個程度已經達到要求了。

【知識點】for循環,if判斷,嵌套

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

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

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

【知識點】求余數,隱藏條件解讀

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

這道題不是5星題,但適合介紹新的編程知識點“List”。前面的題目中的循環比較簡單,這里的循環對象是“質數”,所以需要人為創造一個“List”作為循環取數的“池子”?!癓ist”是非常重要的概念,在實際工作中還會使用到多維的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循環的使用方法后,如果遇到這類嵌套多層的for循環時,其實有更簡潔的編碼方式,再者要有好的編寫習慣,比如可以用mylist去定義質數的數列,而不是用hi,另外每個小三角形要先計算好,以后遇到更復雜的編碼時可以方便的重用這些計算結果。參考代碼如下:

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循環方法

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。