一、根据输入的各科成绩统计学生成绩是否达标
 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的更多相关文章

  1. Python学习之实例3

    一.文字读取并打印拼接字符串 1 with open('G:\python\char.txt') as f: #使用open()函数以只读模式打开文件 2 s=f.read() #使用read()方法 ...

  2. Python学习之实例1

    一.求n个数字的平均值 n=3 #定义常量n=3 sum=0 #定义求和变量sum count=0 #定义变量count,记录输入数字的次数 print("请输入3个数字:") # ...

  3. python学习_数据处理编程实例(二)

    在上一节python学习_数据处理编程实例(二)的基础上数据发生了变化,文件中除了学生的成绩外,新增了学生姓名和出生年月的信息,因此将要成变成:分别根据姓名输出每个学生的无重复的前三个最好成绩和出生年 ...

  4. Python学习:类和实例

    Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...

  5. python学习笔记-练手实例

    1.题目:输出 9*9 乘法口诀表.     程序分析:分行与列考虑,共9行9列,i控制行,j控制列     代码: for i in range(1,10): print ('\r') for j ...

  6. Python学习_11_类和实例

    类和实例 类是对象创建实例的模板,而实例则是对象的实体.类使用class关键字定义: class MyClass:    pass python中创建实例直接使用工厂函数(类名加上一对括号),和其他的 ...

  7. Python学习 Day 7 面向对象 类和实例 访问限制

    面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程 ...

  8. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  9. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

随机推荐

  1. BZOJ4212 神牛的养成计划 (字典树,bitset)

    题面 Description Hzwer成功培育出神牛细胞,可最终培育出的生物体却让他大失所望- 后来,他从某同校女神 牛处知道,原来他培育的细胞发生了基因突变,原先决定神牛特征的基因序列都被破坏了, ...

  2. 【Java】学习路径50-线程死锁问题

    生活化的例子:比如说有两个人,一把刀和一把叉子: 第一个人先需要一把刀,然后还需要一把叉子: 第二个人先需要一把叉子,然后还需要一把刀. 我们理想的情况是:一个人拿着刀,然后再拿到叉子,把事情做完,然 ...

  3. 第十三篇:axios网络通信

    好了这事一个非常艰巨的任务  解释以下的全部代码 <template> <div class="hello"> <p style="colo ...

  4. 解决swiper组件autoplay报错问题

    最近在自定义一个swiper 插件 发现引用之后不定时一直在报错 Uncaught TypeError: Cannot read properties of undefined (reading 'a ...

  5. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(22)-如何使用Fiddler生成Jmeter脚本-下篇

    1.简介 今天这篇文章其实和上一篇差不多也是利用一个fiddler的插件进行Jmeter脚本的导出,开始宏哥想要合在一起写一篇文章,可是结果实践的时候,两个插件还是有区别的,因此为了不绕晕小伙伴或者童 ...

  6. Logstash:在 Docker 中部署 Logstash

    文章转载自:https://elasticstack.blog.csdn.net/article/details/116516923 创建一个目录 docker-logstash.在该目录下,有如下的 ...

  7. Elasticsearch:使用 Nginx 来保护 Elastic Stack

    文章转载自:https://elasticstack.blog.csdn.net/article/details/112213364

  8. Prometheus 监控报警系统 AlertManager 之邮件告警

    转载自:https://cloud.tencent.com/developer/article/1486483 文章目录1.Prometheus & AlertManager 介绍2.环境.软 ...

  9. C# 使用原生 System.IO.Compression 实现 zip 的压缩与解压

    zip 是一个非常常见的压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作, 我们采用的是 微软官方的实现,所以也不需要安装第三方的组件包. 使用的时候记得 usi ...

  10. NSIS使用API创建工具提示条和超级链接

    不再借助专用插件创建超级链接和工具提示条 !includensDialogs.nsh #编写:水晶石 Name "link_tooltips" OutFile "link ...