A. python3--內置函數
python的常用內置函數
1.abs() 函數返回數字的絕對值
abs(-40)=40
2. dict() 函數用於創建一個字典
>>dict()
>>{} #創建一個空字典類似於u={},字典的存取方式一般為key->value
例如u = {"username":"tom", "age":18}
3. help() 函數用於查看函數或模塊用途的詳細說明
>>help('math')查看math模塊的用處
>>a=[1,2,3,4]
>>help(a)查看列表list幫助信息
4.dir()獲得當前模塊的屬性列表
>> dir(help)
['__call__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__mole__', '__ne__', '__new__', '__rece__', '__rece_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
>>>
5.min() 方法返回給定參數的最小值 /參數可以為序列
>>> a= min(10,20,30,40)
>>> a
10
6. next() 返回迭代器的下一個項目
>>> it = iter([1, 2, 3, 4, 5])
>>> next(it)
1
>>>
>>> next(it)
2
>>>
7. id() 函數用於獲取對象的內存地址
>>> a=12
>>> id(a)
1550569552
8.enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字元串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。
>>> a=["tom","marry","leblan"]
>>> list(enumerate(a))
[(0, 'tom'), (1, 'marry'), (2, 'leblan')]
>>>
9. oct() 函數將一個整數轉換成8進制字元串
>>> oct(15)
'0o17'
>>> oct(10)
'0o12'
>>>
10. bin() 返回一個整數 int 或者長整數 long int 的二進製表示
>>> bin(10)
'0b1010'
>>> bin(15)
'0b1111'
>>>
11.eval() 函數用來執行一個字元串表達式,並返回表達式的值
>>> eval('2+2')
4
12.int() 函數用於將一個字元串會數字轉換為整型
>>> int(3)
3
>>> int(3.6)
3
>>> int(3.9)
3
>>> int(4.0)
4
>>>
13.open() 函數用於打開一個文件,創建一個file對象,相關的方法才可以調用它進行讀寫
>>>f=open('test.txt')
14.str() 函數將對象轉化為適於人閱讀的形式
>>> str(3)
'3'
>>>
15. bool() 函數用於將給定參數轉換為布爾類型,如果沒有參數,返回 False
>>> bool()
False
>>> bool(1)
True
>>> bool(10)
True
>>> bool(10.0)
True
16.isinstance() 函數來判斷一個對象是否是一個已知的類型
>>> a=5
>>> isinstance(a,int)
True
>>> isinstance(a,str)
False
>>>
17. sum() 方法對系列進行求和計算
>>> sum([1,2,3],5)
11
>>> sum([1,2,3])
6
>>>
18. super() 函數用於調用下一個父類(超類)並返回該父類實例的方法。super 是用來解決多重繼承問題的,直接用類名調用父類方法
class User(object):
def__init__(self):
class Persons(User):
super(Persons,self).__init__()
19. float() 函數用於將整數和字元串轉換成浮點數
>>> float(1)
1.0
>>> float(10)
10.0
>>>
20. iter() 函數用來生成迭代器
>>> a=[1,2,3,4,5,6]
>>> iter(a)
>>> for i in iter(a):
... print(i)
...
1
2
3
4
5
6
>>>
21.tuple 函數將列表轉換為元組
>>> a=[1,2,3,4,5,6]
>>> tuple(a)
(1, 2, 3, 4, 5, 6)
>>>
22.len() 方法返回對象(字元、列表、元組等)長度或項目個數
>>> s = "playbasketball"
>>> len(s)
14
>>>a=[1,2,3,4,5,6]
>>> len(a)
6
>>>
23. property() 函數的作用是在新式類中返回屬性值
class User(object):
def __init__(self,name):
self.name = name
def get_name(self):
return self.get_name
@property
def name(self):
return self_name
24.type() 函數返回對象的類型
25.list() 方法用於將元組轉換為列表
>>> b=(1,2,3,4,5,6)
>>> list(b)
[1, 2, 3, 4, 5, 6]
>>>
26.range() 函數可創建一個整數列表,一般用在 for 循環中
>>> range(10)
range(0, 10)
>>> range(10,20)
range(10, 20)
>>>
27. getattr() 函數用於返回一個對象屬性值
>>> class w(object):
... s=5
...
>>> a = w()
>>> getattr(a,'s')
5
>>>
28. complex() 函數用於創建一個復數或者轉化一個字元串或數為復數。如果第一個參數為字元串,則不需要指定第二個參數
>>> complex(1,2)
(1+2j)
>>> complex(1)
(1+0j)
>>> complex("1")
(1+0j)
>>>
29.max() 方法返回給定參數的最大值,參數可以為序列
>>> b=(1,2,3,4,5,6)
>>> max(b)
6
>>>
30. round() 方法返回浮點數x的四捨五入值
>>> round(10.56)
11
>>> round(10.45)
10
>>> round(10.45,1)
10.4
>>> round(10.56,1)
10.6
>>> round(10.565,2)
10.56
>>>
31. delattr 函數用於刪除屬性
>>> class Num(object):
... a=1
... b=2
... c=3.
..>>> print1 = Num()
>>> print('a=',print1.a)
a= 1
>>> print('b=',print1.b)
b= 2
>>> print('c=',print1.c)
c= 3
>>> delattr(Num,'b')
>>> print('b=',print1.b)
Traceback (most recent call last): File "", line 1, inAttributeError: 'Num' object has no attribute 'b'
>>>
32. hash() 用於獲取取一個對象(字元串或者數值等)的哈希值
>>> hash(2)
2
>>> hash("tom")
-1675102375494872622
33. set() 函數創建一個無序不重復元素集,可進行關系測試,刪除重復數據,還可以計算交集、差集、並集等。
>>> a= set("tom")
>>> b = set("marrt")
>>> a,b
({'t', 'm', 'o'}, {'m', 't', 'a', 'r'})
>>> a&b#交集
{'t', 'm'}
>>> a|b#並集
{'t', 'm', 'r', 'o', 'a'}
>>> a-b#差集
{'o'}
>>>
B. 怎麼在java的flink中調用python程序
1. 在java類中直接執行python語句
此方法需要引用 org.python包,需要下載Jpython。在這里先介紹一下Jpython。下面引入網路的解釋:
Jython是一種完整的語言,而不是一個Java翻譯器或僅僅是一個Python編譯器,它是一個Python語言在Java中的完全實現。Jython也有很多從CPython中繼承的模塊庫。最有趣的事情是Jython不像CPython或其他任何高級語言,它提供了對其實現語言的一切存取。所以Jython不僅給你提供了Python的庫,同時也提供了所有的Java類。這使其有一個巨大的資源庫。
這里我建議下載最新版本的Jpython,因為可以使用的python函數庫會比老版本的多些,目前最新版本為2.7。
下載jar包請點擊Download Jython 2.7.0 - Standalone Jar
下載安裝程序請點擊Download Jython 2.7.0 - Installer
如果使用maven依賴添加的話,使用下面的語句
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.0</version>
</dependency>
以上准備好了,就可以直接在java類中寫python語句了,具體代碼如下:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("a=[5,2,3,9,4,0]; ");
interpreter.exec("print(sorted(a));"); //此處python語句是3.x版本的語法
interpreter.exec("print sorted(a);"); //此處是python語句是2.x版本的語法
輸出結果如下:這里會看到輸出的結果都是一樣的,也就是說Jpython兼容python2.x和3.x版本的語句,運行速度會比直接運行python程序稍慢一點。
但是每次運行結果都會提示console: Failed to install 」: java.nio.charset.UnsupportedCharsetException: cp0. 這樣看起來很煩,因為每次運行結果都會出現紅色的提示語句,以為是錯誤,程序員應該都不願意看到這一幕,得想個辦法解決。
解決方法如下:
在要執行的代碼上右鍵, Run As>Run Configurations,選擇第二個頁簽Arguments,在VM arguments中添加以下語句
-Dpython.console.encoding=UTF-8
然後Apply->Run就可以了。
C. 如何配置java和python環境
Java 環境配置
1. 最簡單的方法
眾所周知,eclipse是需要java運行環境的,其實只需要java虛擬機
jre就行了,也就是說橘困缺在你的系統中如果已經安裝了jre(一般在C:\Program Files
(x86)\Java\jre6),其實只需要這個jre文件夾到eclipse下就能順利運行eclipse了,但是這樣做之後eclipse會提示你什麼環境變數沒有設置,會影響啥啥的,這個我都沒有管,以後需要再在意也行。
2. 標準的方法
首先從這里下載jdk (SE是指standard version)
jdk下載地址
配置環境變數
在「系統變數」區域,設置3項圓辯屬性:JavaHome、PATH、CLASSPATH
JavaHome指明JDK的安裝路徑 "C:\Program Files\Java\jdk1.7.0_45"
PATH 是java和javac的目錄 ".\;%JavaHome%\bin;\%JavaHome%\jre\bin"
classpath 是載入類的路徑 ".\;%JavaHome%\lib\tools.jar;%JavaHome%\jre\lib\rt.jar"
Python插件配置
(1) 安裝python插件
打開eclipse中help下的install new software,輸入下面網址
http://pydev.org/updates/
選中Pydev安裝,安裝後eclipse會提醒重啟
(2) 配置python解釋器
先從官網下載python的安裝包
python安裝包
安裝好python後
如果要在windows命令行下使用python,在系統高級設置中環境變數path中添加python的路徑「C:\Python27」即可。這一步是很必要的,比如以後要安裝python的第三方的庫的時候需要在windows下運行setup.py要用到。
驗證安裝好的方法:
在command中運行:
python -version 應該能成功顯示python的版本。
在eclipse中
打開windows->preferences下面配置python解釋器的環境,配置好後如圖。
然後就可以新建python的工程啦。
(3) python 第三方插件的安裝 以及在Eclipse中的識別問題
以安裝requests這個python的第三方插件為例尺襪
首先從github網站下載request python安裝包
https://github.com/kennethreitz/requests
點擊後面的zip包下載解壓到本地任意一個地方,python的安裝很簡單,正常的安裝包中都會有個setup.py這個文件,在terminal下運行:
python setup.py install
這里感嘆一句,安裝時它會自動尋找python的安裝路徑,無論是在C盤還是D盤(不過這也可能是因為我提前在系統變數path中配置了python的路徑)。然後將需要的文件復制在E:\Python27\Lib\site-packages下。
接下來再次進入eclipse中,重新restore一下preferences下的解釋器的路徑(估計這一步也是沒有必要的),然後重啟eclipse,這樣python interpreter就能正常識別你新導入的mole了。
D. python第三方庫安裝到哪裡
將依賴包目錄放置到*:\Python*\Lib\site-packages\中,即python的安裝目錄中。
首先確定API目錄下是否有__init__.py文件,如果沒有,請新建一個。
打開API主運行文件,查看裡面的類名稱。此處為main.py文件,類為class dcVerCode。
此處以導入main中的類dcVerCode為例。
打開__init__.py,輸入:
from main import dcVerCode
這樣就完成了依賴包的指定。
然後再在程序中導入該包即可,此處的依賴包名稱為qqcr(即目錄名稱),所以輸入:
import qqcr
即可完成包的導入。
E. 如何使用pycharm配合部署python的django框架
安裝軟體
安裝 Python 2.7、PyCharm、pip(Python包管理工具)、Django ( pip install Django)
部署
PyCharm 新建Django工程
完成後,其目錄如下:
子目錄MyDjangoProject下表示工程的全局配置,分別為setttings.py、urls.py和wsgi.py,其中setttings.py包括了系統的資料庫配置、應用配置和其他配置,urls.py則
表示web工程Url映射的配置。
子目錄student則是在該工程下創建的app,包含了models.py、tests.py和views.py等文件
templates目錄則為模板文件的目錄
manage.py是Django提供的一個管理工具,可以同步資料庫等等
啟動
創建完成後,就可以正常啟動了。點擊Run 按鈕,啟動時報錯了:
Traceback (most recent call last):
File "D:/workspace/MyDjangoProject/manage.py", line 10, in <mole>
execute_from_command_line(sys.argv)
File "D:\Python27\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
utility.execute()
File "D:\Python27\lib\site-packages\django\core\management\__init__.py", line 312, in execute
django.setup()
File "D:\Python27\lib\site-packages\django\__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "D:\Python27\lib\site-packages\django\apps\registry.py", line 89, in populate
"plicates: %s" % app_config.label)
django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, plicates: admin
應該是admin配置沖突了,打開setttings.py文件,發現admin配置重復了
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'student',
)
注釋掉其中一行後(為什麼會有這個問題,估計是個bug),重新啟動,ok
web工程添加頁面
此時,我們尚沒有寫一行代碼,程序就ang跑起來了! 快添加一個Hello World的頁面吧。
打開student/views.py文件,輸入以下內容
def sayHello(request):
s = 'Hello World!'
current_time = datetime.datetime.now()
html = '<html><head></head><body><h1> %s </h1><p> %s </p></body></html>' % (s, current_time)
return HttpResponse(html)
打開url.py文件,需要進行url映射的配置:
url(r'^student/', sayHello)
當用戶輸入http://**/student 時,便會調用sayHello方法,該方法通過HttpResponse()將頁面內容作為響應返回。
重啟服務,訪問http://localhost:8000/student/
在views.py頁面可以將頁面需要的元素通過字元串的形式,調用HttpResponse()類作為響應返回到瀏覽器。但這樣,頁面邏輯和頁面混合在一起,手寫起來很繁瑣,工作量比較大。如果我們需要展示一些動態的數據,而頁面基本不改變的情況下,該怎麼做呢?
比如在用戶訪問 http://localhost:8000/student/ 時,我們想動態展示一些學生的數據。可以這樣做:
首先在templates目錄下,新建 student.html文件,該文件作為模板,內容如下:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<ul>
{% for student in students %}
<li>
id:{{ student.id }},姓名:{{ student.name }},age: {{ student.age }}
</li>
{% endfor %}
</ul>
</body>
</html>
修改 views.py文件,添加方法showStudents()
def showStudents(request):
list = [{id: 1, 'name': 'Jack'}, {id: 2, 'name': 'Rose'}]
return render_to_response('student.html',{'students': list})
該方法將list作為動態數據,通過render_to_response方法綁定到模板頁面student.html上。
添加url映射,url(r'^showStudents/$', showStudents)
修改settings.py模板配置:'DIRS': [BASE_DIR+r'\templates'],
重啟服務,訪問http://localhost:8000/showStudents,出現:
至此,我們已可以正常將一些「動態」數據綁定到模板上了。但是怎麼樣訪問資料庫呢?
從資料庫獲取需要的數據,展示在頁面上?
首先需要安裝資料庫驅動啦,即mysql_python,
接著配置資料庫連接:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'student',
'USER': 'root',
'PASSWORD': '1234',
'HOST': '127.0.0.1',
'PORT': '3306',
#'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
配置完成之後,需要檢測資料庫配置是否正確,使用 manage.py shell命令,進入shell交互界面:
輸入:
from django.db import connection
cursor = connection.cursor()
如果不報錯,說明配置正確。
創建model,打開models.py,定義model如下:
class Student(models.Model)
id = models.BigIntegerField
name = models.CharField(max_length=20, default='a')
然後調用 manage.py syncdb
正常情況下,該步驟做完之後,model 會和資料庫保持一致性。但是在測試中,命令執行成功後,卻發現資料庫並沒有建立該表。
對於該種情況,做如下操作即可正常:
(1)注釋掉models.py文件代碼,執行 manage.py makemigerations student
【和manage.py migerate --fake】
(2)打開注釋,執行【 manage.py makemigerations student和 】manage.py migerate命令
通過以上兩步,便可正常操作了
views.py中添加方法:showRealStudents
def showRealStudents(request):
list = Student.objects.all()
return render_to_response('student.html', {'students': list})
urls.py添加映射 url(r'^showRealStudents/$', showRealStudents)
重啟服務,打開連接:http://localhost:8000/showRealStudents
頁面輸出正常。
至此,使用Django,可以正常操作資料庫,自定義模板,在頁面展示數據了。
伺服器
由於Django自帶輕量級的server,因此默認使用該server,但實際生產中是不允許這么乾的,生產環境中通常使用Apache Httpd Server結合mod_wsgi.so來做後端伺服器。
以下部署環境為:Python2.7.6
1、安裝httpd-2.2.25-win32-x86-no_ssl.msi
2、將下載好的mod_wsgi.so 放在 D:\Program Files\Apache Software Foundation\Apache2.2\moles 模塊下。
3、在新建的web工程 MyDjangoProject目錄下新建 django.wsgi文件
內容如下(相應的目錄需要修改):
import os
import sys
djangopath = "D:/Python27/Lib/site-packages/django/bin"
if djangopath not in sys.path:
sys.path.append(djangopath)
projectpath = 'D:/workspace/MyDjangoProject'
if projectpath not in sys.path:
sys.path.append(projectpath)
apppath = 'D:/workspace/MyDjangoProject/MyDjangoProject'
if apppath not in sys.path:
sys.path.append(apppath)
os.environ['DJANGO_SETTINGS_MODULE']='MyDjangoProject.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
4、修改httpd.conf ,添加如下:
LoadMole wsgi_mole moles/mod_wsgi.so
WSGIScriptAlias / "D:/workspace/MyDjangoProject/django.wsgi"
<Directory "D:/workspace/MyDjangoProject/">
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
ok,重啟server,頁面正常了。
在部署的過程中,遇到一個異常,如下:
The translation infrastructure cannot be initialized before the apps registry is ready
原因是django.wsgi一開始按照較為古老的寫法,改為新版本的寫法就Ok了。
F. python語言的33個保留字
文末有例子鏈接
1 false
#布爾類型的值,表示假,與true對應
2 class
#定義類的關鍵字
3 finally
#異常處理使用的關鍵字,用它可以指定始終執行的代碼,指定代碼在finally裡面
4 is
#Python中的對象包含三個要素:id,type,value
5 return
#python 函數返回值 return,函數中一定要有return返回值才是完整的函數。如果你沒有python定義函數返回值,那麼會得到一個結果是None對象,而None表示沒有任何值。
6 none
#None是一個特殊的常量,None和False不同,None不是0。None不是空字元串。None和任何其他數據類型比較永遠返回False。None有自己的數據類型NoneType。我們可以將None復制給任何變數,但是不能創建其他NoneType對象。
7 continue
#continue語句被用來告訴Python跳過當前循環塊中的剩餘語句,然後繼續進行下一輪循環。
8 for
#for循環可以遍歷任何序列的項目,如一個列表或者一個字元串
9 lambda
#匿名函數是個很時髦的概念,提升了代碼的簡潔程度。
10 try
#程序員可以使用try…except語句來處理異常。把通常的語句塊放在try塊中,而把錯誤處理的語句放在except塊中
11 true
#布爾類型的值,表示真,與false相反。
12 def
#定義函數用的
13 from
#在python用import或者from…import來導入相應的模塊。
14 nonlocal
#nonlocal關鍵字用來在函數或其他作用域中使用外層(非全局)變數。
15 while
#while語句重復執行一塊語句。while是循環語句的一種,while語句有一個可選的else從句
16 and
#邏輯判斷語句,and左右兩邊都為真,則判斷結果為真,否則都是假
17 del
#del用於list列表操作,刪除一個或者連續幾個元素。
18 global
#定義全局標量。
19 not
#邏輯判斷,取反的意思
20 with
#with是python2.5以後有的,它實質是一個控制流語句,with可以用來簡化try…finally語句,它的主要用法是實現一個類_enter_()和_exit_()方法。
21 as
#結合with使用。
22 elif
#和if配合使用的
23 if
#if語句用來檢驗一個條件,如果條件為真,我們運行一塊語句(稱為if…塊),否則我們處理另外一塊語句(稱為else…塊)。else從句是可選的。
24 or
#邏輯判斷,or兩邊有一個為真,判斷結果就是真。
25 yield
#yield用起來像return,yield在告訴程序,要求函數返回一個生成器
26 assert
#斷言,用來在運行中檢查程序的正確性,和其他語言一樣的作用。
27 else
#與if配合使用
28 import
#在Python用import或者from…import來導入相應的模塊。
29 pass
#pass的意思是什麼都不要做,作用是為了彌補語法和空定義上的沖突,它的好處體現在代碼的編寫過程之中,比如你可以先寫好軟體的整個框架,然後再填好框架內具體函數和class的內容,如果沒有pass編譯器會報一堆的錯誤,讓整個開發很不流暢。
30 break
#break語句是用來終止循環語句的,即使哪怕循環條件沒有稱為false或者序列還沒有被完全遞歸,也會停止循環語句。提示,如果break的是for或while循環,任何對應的循環else塊將不執行。
31 except
#使用try和except語句來鋪貨異常。
32 in
#for…in是另外一個循環語句,它在一序列的對象上遞歸即逐一使用隊列中的每個項目。
33 raise
#raise拋出異常。
這里有例子—》python33個保留字的匯總
G. Python方法對象的理解與運用
9.3.4. 方法對象
通常,方法通過右綁定方式調用:
x.f()
在 MyClass 示例中,這會返回字元串 'hello world'。然而,也不是一定要直接調用方法。 x.f 是一個方法對象,它可以存儲起來以後調用。例如:
xf = x.f
while True:
print(xf())
會不斷的列印 hello world。
調用方法時發生了什麼?你可能注意到調用 x.f() 時沒有引用前面標出的變數,盡管在 f() 的函數定義中指明了一個參數。這個參數怎麼了?事實上如果函數調用中缺少參數,Python 會拋出異常--甚至這個參數實際上沒什麼用……
實際上,你可能已經猜到了答案:方法的特別之處在於實例對象作為函數的第一個參數傳給了函數。在我們的例子中,調用 x.f() 相當於 MyClass.f(x) 。通常,以 n 個參數的列表去調用一個方法就相當於將方法的對象插入到參數列表的最前面後,以這個列表去調用相應的函數。
如果你還是不理解方法的工作原理,了解一下它的實現也許有幫助。引用非數據屬性的實例屬性時,會搜索它的類。如果這個命名確認為一個有效的函數對象類屬性,就會將實例對象和函數對象封裝進一個抽象對象:這就是方法對象。以一個參數列表調用方法對象時,它被重新拆封,用實例對象和原始的參數列表構造一個新的參數列表,然後函數對象調用這個新的參數列表。
H. 如何用python的字典和列表來實現學生成績管理
下面是一個使用 Python 的字典和列表來實現學生成績管理的簡單例子。此例子實現了所有要求,但沒有使用定義學生結構體類型和數組:
# 定義學生數據字典
students = []
# 定義輸入函數
def input_student():
while True:
student = {}
student['id'] = input('學號: ')
student['class'] = input('班級: ')
student['name'] = input('姓名: ')
student['scores'] = []
for i in range(3):
score = input('第%d門課程成績: ' % (i + 1))
student['scores'].append(score)
students.append(student)
if input('是否穗讓瞎繼續輸入(y/n): ') != 'y':
break
# 定義求平均分函數
def average_score():
for student in students:
total = 0
for score in student['scores']:
total += score
student['average'] = total / len(student['scores'])
# 定義求最高平均分函數
def max_average():
max_student = None
max_average = 0
for student in students:
if student['average'] > max_average:
max_student = student
max_average = student['average']
return max_student
# 調用輸入函數
input_student()
# 調用求平均分函數
average_score()
# 輸出每個學生的3門課程平均分
for student in students:
print('學號: %s, 班級: %s, 姓名: %s, 平均分: %.2f' % (student['id'], student['class'], student['name'], student['average']))
# 調用求最高平均分函數
max_student = max_average()
# 輸出最高平均分的學生信息
if max_student:
print(' 平均分猜空最高的學生: 學號: %s, 班級: %s, 姓名: %s, 3門課程成績: %s, 平均分: %.2f' % (max_student['id'], max_student['class'], max_student['name'], max_student['scores'], max_student['average']))
在上面的例子中,我們定義了一個學生數據字典,用於存儲學生信息。然後定義了三個函數,分別用於輸入學生信息滑爛、求每個學生3門課程的平均分和求平均分最高的學生。最後,在主函數中調用這三個函數,並輸出結果。