1-06 Python 基础学习 -0409

命名:programming Software
作为计算机系统硬件的对立面的术语

EDVAC--------世界上第一架可编程序的电子数字计算机

通用图灵机---------

软件工程:第一章 概述

主要内容:
软件工程产生
软件产生的发展
软件危机
软件工程
软件工程定义
软件工程学的内容
软件工程的基本原理
软件生命周期
软件过程模型

软件生产的发展

软件是指计算机程序及其有关的数据和文档
软件生产的各个阶段必须完成的有关计算机程序的功能、设计、编制的文字或图形资料,这些资料称为“文档”

软件工程的发展
程序设计时期
软件=程序+文档时期
软件工程阶段
软件发展第4阶段

软件危机

软件危机是指在计算机软件开发和维护时所遇到的一系列问题

软件危机的典型表现:
1.对软件开发成本和和进度的估计常常很不准确
2.用户对完成的软件系统不满意的现象经常发生
3.软件产品的质量往往靠不住
4.软件常常是不可维护的
5.没有适当的文档资料
6.软件成本在计算机系统总成本中所占的比列逐年上升
7.软件开发生产率提高的熟读跟不上计算机应用的发展趋势

软件危机主要包含的问题:
1.如何开发软件以满足对软件日益增长的需求
2.如何维护数量不断增长的已有软件
软件危机主要表现形式
1.软件本身特点造成
2.软件开发与维护的方法不正确

软件危机产生的原因
A.忽略软件需求分析
B.认为软件开发就是写程序并使之运行
C.轻视软件维护

软件危机的结果:
1.预算超出
2.财产的损失
3.死亡事故

解决软件危机的途径
1)推广使用在实践中总结出来的开发软件的成功技术和方法,并研究更有效的技术和方法;
2)开发和使用更好的软件工具;
3)良好的组织管理措施。

软件工程:是软件开发、运行、维护和引退的系统方法
软件工程是指导计算机软件开发和维护的工程学科
软件工程采用工程的概念、原理、技术和方法来开发和维护软件
软件工程的目标是实现软件的优质高产

软件工程生命周期------软件从提出到最终被淘汰的这个存在期

问题定义----可行性分析-----需求分析----总体设计------详细设计------编码于单元测试-----综合测试----维护

软件过程—为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

瀑布模型

快速原型模型

增量模型

螺旋模型

喷泉模型

在这里插入图片描述
#!/usr/bin/env python
#--coding:utf-8--
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码

格式化:

我们经常会输出类似’亲爱的 xxx 你好! 你 xx 月的话费是 xx ,余额是 xx’之类的字符串

而 xxx 的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。

举例说明:
print(‘Hello,%s’%‘world’)
print(‘Hi,%s,you have $%d.’%(‘Michael’,1000000))

说出的是什么

总结:%,%s,%d
%----------------占位符。
%s-----------------表示字符串的占位符。
%d------------------表示整数的占位符

常见的占位符: %d %f %s

print(’%2d-%02d’%(3,1))
print(’%.2f’%3.1415926)

总结:
%2d---------表示两个占位符,如果数不够用,用空格来站位
%02d---------也表示两个占位符,如果数不够,用0来站位
%.2f--------保留小数点后面两位。

如果你不太确定应该用什么占位符,
%s永远起作用,它会把任何数据类型转换为字符串

print(‘Age:%s.Gender:%s’%(25,True))
print(‘Age:%s.Gender:%s,score:%.5s’%(25,Ture,89.786))

eg:89.786
%.3s---------表示3个位置,包括小数点,空格等。
89.

%3f--------表示小数点后面三位。
89.786

有些时候,字符串里面的%是一个普通字符怎么办?

这个时候就需要转义,用%%来表示一个%
print(‘growth rate:%d %%’%7)

7%

format()

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}…,不过这种方式写起来比%要麻烦得多:

print(‘Hello,{0},成绩提升了 {1:.1f}%’.fotmat('小明,17.125)

练习:
小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出’xx.x%’,只保留小数点后1位:显示类容为:Hello,成绩提高了 xx.x%

s1=72
s2=85
r=
print(’???’ % r)

s1=72
s2=85
r=(s2-s1)/s1*100
name=‘小明’
print(hello,%s,成绩提高了:%.2f %%’%(name,r))
print(‘hello,%s,成绩提高了:%.4f %%’%(name,r))

使用list和tuple

也是一种Python内置的数据类型。
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素
语法以及定义方式:
a=[] :[]----------方括号表示集合;【】[]
在这里插入图片描述
len(classmates)-1:表示列表当中最后一个元素的索引。
L[3]=L[len(classmates)-1]

#超出列表索引会报错 eg:classmates[4]报错,超出索引
#lndexErrorL:list index out of range

添加元素方法:
append():在列表最后插入元素(一个参数)
insert():在指定索引处,插入元素。(两个元素)

classmates=[‘张三’,‘李四’,‘王五’,‘小明’]
print(len(classmates))
#classmates的长度是多少?
#超出列表索引会报错
#lndexError:list index out of range

#如何将 ‘小红加入当classmates这个列表当中
classmates.append(‘小红’)
#append():向列表当中添加元素。列表当中的方法,用’.'点,调用。
#append():添加的元素是在列表的最后。

#如何添加到列表的指定位置,eg:添加到第一个位置
#classmates.append(0,‘小白’)
#insert():在指定索引处,插入元素。

删除元素:
#pop():删除列表当中最后一个元素
#pop(index):删除指定索引的元素

classmates=[‘张三’,‘李四’,‘王五’,‘小明’]
print(classmates)
#删除元素

classmate.pop()
print(classmates)
classmates.pop(1)
print(classmates)

列表内置方法:
pop():删除列表当中最后一个元素
pop(index):删除指定索引的元素
append(value):在列表最后插入元素(一个参数)
insert(index,value):在指定索引处,插入元素。(两个参数)

列表插入删除练习:
fruit = [‘苹果’,’香蕉’,’橘子’]
1.添加 ‘西瓜’到fruit列表的最后,打印输出fruit
2.添加 ‘草莓’到苹果的后面,打印输出fruit
3.删除 fruit列表的最后一个元素,然后打印输出fruit
4.删除 fruit列表的第2个元素,然后打印输出fruit
5.打印输出 ‘橘子’
答案:
1.fruit.append(‘西瓜’)
2.fruit.insert(1,‘草莓’)
3.fruit.pop()
4.fruit.pop(2)
5.print(fruit[2])
在这里插入图片描述
列表:

list=[1,2,3,True,’小明’,None,3.124,[]]
二维列表:
在这里插入图片描述
练习:
1.请用索引取出下面list的指定元素:

#打印Apple
print(?) L[1][1]
#打印Python:L[1][1]
print(?)
PHP:L[1][3]
#打印
print(?)

tuple元组:也是一种数据类型,有序,不能添加或删除元素,即:tuple一但初始化就不能修改了。没有list 的添加删除方法(没有append(),insert(), pop()等方法)。 定义:L=() ,其他和list相同,eg:索引表示,计算tuple长度:len()。
classmates = (‘zhangsan’,’lisi’,’wangwu ’,’’sdf”)
money=(3000,4000,5000)
tuple的意义优点:tuple一但初始化就不能修改了,代码更安全。如果可能,能有tuple代替list就尽量用tuple。

list = [[]] : 二维列表。
tuple = ([1,2,3],[4,5,6],[7,8,9])
如果tuple里面有list,那么可以改变list的元素。
tuple = ([1, 2, 3], [4, 5, 6], [7, 8, 9])
print(tuple[0])
print(type(tuple[0]))
print(tuple[0].append(122))
print(tuple)
6 --------- tuple[1][2]

tuple 的缺陷:当你定义一个tuple时,在定义的时候,tuple 的元素就必须被确定下来。

eg:

t = (1,2)
t
(1,2)
1.定义一个空tuple: tuple = ()
2.定义只有一个元素的tuple: tuple = (1,)
2. 请问以下变量哪些是tuple类型:
对 a = ()
b = (1)
c = [2]
对d = (3,)
对 e = (4,5,6)
条件判断语句
#if …else
#比如,输入用户年龄,根据年龄打印输出不同的类容
age = 20
if age >= 18:
print(‘你的年龄是 %s’ % age)
print(“成人”)
#根据python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了。
#如果if语句判断是False, 就不执行。(否则什么都不做。)
#也可以给if添加一个else语句,意思是,如果if判断为False,不要执行if 的内容,#去执行else里面的内容。

age = 5
if age >= 18:
print(‘你的年龄是 %s’ % age)
print(“成人”)
else:
print(‘你的年龄是 %s’ % age)
print(“未成人”)
注意: 不要少写了冒号 :
#可以用else if 缩写 :elif
age = 16
if age>=18:
print(“adult”)
elif age >= 10:
print(“青少年”)
elif age >=6:
print(“青少年1”)
else:
print(“kid”)

语法
‘’’
if <条件判断1>:
<执行内容1>
elif <条件判断2>:
<执行内容2>
elif <条件判断3>:
<执行内容3>
else:elif 是 else if 的缩写,完全可以有多个elif。

<执行内容n> 

‘’’
说明: 从上往下判断,如果在某个判断上为True,那么把判断对应的语句执行后,
就忽略掉剩下的elif和else。

练习:
小明身高1.75m,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
用if-elif判断并打印结果:

在这里插入图片描述
height = 1.75
weight = 80.5
bmi = ???
if ???:
print(“”)
答案:
weight = 80.5
height = 1.75
bmi = weight/(height*height)
if bmi<18.5:
print(“过轻”)
elif bmi<=25:
print(“正常”)
elif bmi<=28:
print(“过重”)
elif bmi<=32:
print(“肥胖”)
else:
print(“严重肥胖”)

改版: 用户自动输入,加格式化练习
name = input(“请输入名字:”)
weight = float(input(“请输入体重:”))
height = float(input(“请输入身高:”))
bmi = weight/(height*height)
if bmi<18.5:
print(name,“的bmi为:%.2f,为 %s” % (bmi,“过轻”))
elif bmi<=25:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “正常”))
elif bmi<=28:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “过重”))
elif bmi<=32:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “肥胖”))
else:
print(name, “的bmi为:%s,为 %s” % (bmi, “严重肥胖”))

改版二: 加上list练习
#分别计算 张三 、小明、和小红的bmi
classmate = [[‘张三’, 67, 1.75],[‘小明’, 77, 1.80],[‘小红’, 88, 1.90]]
name = classmate[0][0]
weight = classmate[0][1]
height = classmate[0][2]
bmi = weight / (height * height)
if bmi < 18.5:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “过轻”))
elif bmi <= 25:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “正常”))
elif bmi <= 28:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “过重”))
elif bmi <= 32:
print(name, “的bmi为:%.2f,为 %s” % (bmi, “肥胖”))
else:
print(name, “的bmi为:%s,为 %s” % (bmi, “严重肥胖”))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值