Python学习之实例2

Posted Deng0727

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之实例2相关的知识,希望对你有一定的参考价值。

一、根据输入的各科成绩统计学生成绩是否达标
 1 (背景:输入学生数量,以及各个学生语文、数学、英语、历史四科的成绩,如果总成绩小于 240,则成绩不达标,否则成绩合格)
 2 
 3 #coding=utf-8
 4 n = int(input(\'请输入学生数量:\'))                             #输入学生数量,并转换为整型
 5 print(\'-\' * 50)                                             #打印分割线
 6 subjects =(\'语文\',\'数学\',\'英语\',\'历史\')                        #创建学科元组
 7 data ={}                                                    #创建字典data,用来存储学生姓名+成绩
 8 for i in range(1,n+1):                                      #元素i记录输入的学生次数,控制循环次数
 9     name= input(\'请输入第{}位学生姓名:\'.format(i))            #定义变量name,接收输入的学生姓名
10     i += 1                                                  #每输入一个学生,元素i加1
11     marks=[]                                                #创建列表marks,记录每个学生的四科成绩
12     for x in subjects:                                      #元素x记录遍历的学科
13         marks.append(int(input(\'请输入{}成绩:\'.format(x))))  #接收输入的成绩,转换为整型,并添加到marks列表
14         data[name]=marks                                    #往字典data中添加本次循环的name和marks
15     print()                                                 #换行打印
16 print(\'-\' * 50)                                             #打印分割线
17 for x,y in data.items():                                    #遍历data字典
18     print(x,y)                                              #打印字典遍历内容
19     total =sum(y)                                           #定义变量total,使用sum()计算每个学生的总成绩
20     print(\'{}的总成绩为{},\'.format(x,total),end=\'\')           #打印学生总成绩
21     if total <240:                                          #如果总成绩小于240,则学生成绩不达标
22         print(\'{}的成绩不达标\'.format(x))
23     else:                                                   #否则成绩合格
24         print(\'{}的成绩合格\'.format(x))                     


执行结果:
知识点:
  • 元组            #元组由数个逗号分割的值组成。元组是不可变类型,这不能在元组内删除或添加或编辑任何值。
  • 字典            #字典是无序的键值对(key:value)集合,同一个字典内的键必须是互不相同的。使用一对大括号{}创建一个空字典。可使用del关键字来删除

    任意指定的键值对,如 del data[\'张三\'];要遍历一个字典,使用字典的items() 方法,如例子中体现。
  • 列表            #列表由中括号开始结束、可以存储不同数据类型的可变的数据结构。如a=[1,2.2,\'Hello\',True,[1,2,3]]。列表的相关方法:append(),像列表末尾添加元素;insert(),将数据插入到列表的某一位置,如insert(2,1),即在列表索引2位置添加元素1;count(),查询列表中元素的数量,如count(1);remove(),移除列表中的元素;reverse(),反转整个列表,如a=[1,2,3],反转后变为a=[3,2,1];extend(),将一个列表的所有元素添加到另一个列表的末尾,如a=[1,2],b=[3,4],a.extend(b),则a=[1,2,3,4];sort(),给列表元素排序,前提是列表元素可比较; del关键字,使用del a[-1] 来删除列表元素,示例为删除a列表末尾的元素。

  

 

二、函数相关
【@1 定义函数并调用计算2个数的和】
1  def sum(a,b):                        #定义求和函数,括号中a,b为参数
2      return a+b
3  a=int(input(\'请输入第一个数字:\'))      #用户输入a,b的值
4  b=int(input(\'请输入第二个数字:\'))
5 print(sum(a,b))                      #调用sum()函数,返回a+b的和并打印
知识点:
函数的定义,语法如下:
def 函数名(参数):
语句1
语句2


【@2 修改变量的值 】
1 def change():                       #定义修改函数
2     a=10                            #函数中对局部变量a赋值10
3     print(a)                        #打印a的值
4 a=5                                 #函数外程序中对全局变量a赋值5
5 print(\'调用函数前,a的值为:\',a)       #打印a的值,此处a=5
6 print(\'函数中,a的赋值为:\',end=\'\')    #打印文字不换行
7 change()                            #调用函数,打印函数中a的值,此处a=10
8 print(\'调用函数后,a的值为:\',a)       #打印a的值,此处a=5

 执行结果:

 知识点:

  • 局部变量      #只在函数或循环中可用,并且会在函数或循环完成时销毁
  • 全局变量      #在函数外部定义和声明的变量,作用于整个程序

【@3 使用关键字global将函数内的局部变量转换为全局变量】

1 def change():
2     global a
3     a=10
4     print(a)
5 a=5
6 print(\'调用函数前,a的值为:\',a)
7 print(\'函数中,a的赋值为:\',end=\'\')
8 change()
9 print(\'调用函数后,a的值为:\',a)

 执行结果:

 知识点:

  •  global关键字     #设置函数中的局部变量为全局变量,是整个程序中该变量的值修改为函数调用后的结果
【@4 默认参数值】
1 def sum(a,b=10):  #定义求和函数,设置参数变量a,b;给参数b设置默认值为10
2     return a+b
3 print(sum(5))     #调用函数时没有给参数b进行赋值,则使用其默认值10

执行结果:
1 def sum(a,b=10):  #定义求和函数,设置参数a,b;给参数b设置默认值为10 
2     return a+b
3 print(sum(5,6))   #调用时给参数a,b都有赋值,则不会使用参数的默认值

执行结果:

知识点:

  • 默认参数值   #函数的参数变量可设置有默认值,当调用函数时对指定的参数变量没有给出任何值则会赋其默认值

 【@5 具有默认值的参数后面不能再有普通参数】

1 def sum(a,b=10,c):    #具有默认值的参数后有普通参数
2     return a+b+c
3 print(sum(4,6))
4 
5 
6 def sum(a=1,b):      #具有默认值的参数后再有普通参数
7     return a+b
8 print(sum(4))
执行结果:
以上2个例子,参数列表中具有默认值的参数后面均有普通参数,执行均会报错
 知识点:
  • 具有默认值的参数后面不能再有普通参数
  • 默认值只被赋值一次,当默认值是任何可变对象时会有所不同,比如列表、字典或大多数类的实例

 

以上是关于Python学习之实例2的主要内容,如果未能解决你的问题,请参考以下文章

大数据学习之七——MapReduce简单代码实例

python学习之函数返回值

python学习之创建和使用类

python学习之面向对象高级特性

Python学习之七面向对象高级编程——__slots__的使用

Python学习之高级数组