一、概述:
1.python 有关概念
(1).编译器与解释器
编译器:一次性读完,形成最终可执行文件
特点:速度快 但跨平台性差 比如c语言
解释器:读一行解释一行
特点: 速度慢 跨平台性好 比如python
(2)python语言的特点
它是一种解释性语言,它的优点是面向对象、可扩展性强(可加c语言算法等)
(3).python编程的一般规则
1.python程序中没有分号
2.python是一门严格按照缩进的编程语言
(4).错误类型
1.拼写错误
2.语法错误(不能写在一行 缩进错误)
3.写注释时也会出现报错,因为默认python不识别中文 ,在最前面添加# _*_ coding:utf-8 _*_ 即可
SyntaxError: invalid syntax #拼写错误
IndentationError: unexpected indent #缩进错误
SyntaxError: Non-ASCII character '\xe5' in file hellopython.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details #默认python不识别中文
(5)pthon与ipyton
python(交互式)
缺点:退出后无法保存代码,语法结构较为复杂,比如退出时需执行exit()或者Ctrl+D
ipython
优点:会有历史记录,按上下键即可查看到,并且可用tab键补齐,语法也较为简洁
2.程序与变量
程序:处理数据
变量:存储数据
1).程序
(1)程序是如何执行的
简言之,程序在运行之前储存在硬盘上,由于内存读取数据速度快,所以运行程序时,会由cpu将储存在硬盘上的程序复制到内存中进行处理
(2)计算机的三大硬件
计算机中包含有较多的硬件,但是一个程序要运行,有三个核心的硬件,分别是:
1.cpu(cpu 就是干活的,离开了 cpu 电脑就不能干活)
中央处理器,是一块超大规模的集成电路,负责处理数据/计算
2.内存(临时存储数据 以 G 为单位 4G 8G 16G 32G)
临时存储数据(断电之后,数据会消失), 速度快,空间小(单位价格高)
3.硬盘(永久存储数据 以 T 为单位 1T=1024G)
永久存储数据,速度慢,空间大(单位价格低)
(3)程序执行的原理
1.程序运行之前,程序是保存在硬盘中的
2.当要运行一个程序的时候操作系统会首先让 CPU把程序复制到内存中
CPU执行内存中方的代码程序程序要执行,首先要被加载到内存
(4)python 程序执行的语言
1.操作系统首先让 CPU 把 python 解释器的程序复制到内存中
2.python 解释器根据语法规则,从上而下让 CPU 翻译 python 程序中的代码
3.CPU 负责执行翻译完成的的代码
(5)程序的作用
程序就是用来处理数据的
2).变量
(1)什么是变量?
变量名只有在第一次出现才是定义变量(变量名再次出现,不是定义变量,而是直接使用之前定义的变量)
(2)变量的定义
格式: 变量名 = 值
变量定义之后,后续就可以直接使用了,变量的定义,需要做到见名知意
在python中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建,等号=用来给变量赋值 ,=左边是一个变量名 ,=右边是存储在变量中的值
(3)变量的类型
在 python 中定义变量是不需要指定类型,因为定义变量时,会自动指定变量类型
(4)数据类型
数字型:
整型(int)
浮点型(float)
布尔型(bool) True表示真 Fals 表示假
非数字型:
字符串
列表
元组
字典
注意:使用 type 函数可以查看一个变量的类型
在使用交互式终端时,也可以知道每个变量的准确类型
(5)不同类型变量之间的计算
1.数字变量之间可以直接计算
在python中,两个数字型变量是可以直接进行算术运算的。如果变量是 bool 型,在计算时
True 对应的数字是 1 Fals 对应的数字是 0
2.字符串变量之间使用+拼接字符串
在python中,字符串之间可以使用+拼接生成新的字符串,字符串变量可以和整数使用*重复拼接相同的字符串,字符串变量和字符串之间不能进行其他计算
(6)变量的输入
所谓输入,就是用代码获取用户通过键盘输入的信息,用raw_input 函数实现键盘输入
(7)变量的格式化输出
在python中可以使用 print 函数将信息输出到控制台,如果希望输出文字信息的同时,一起输出数据,就需要使用到格式化操作符
% #格式化操作符,专门用于处理字符串中的格式,包含%的字符串,被称为格式化字符串
%和不同的字符连用,不同类型的数据需要使用不同的格式化字符
%s #字符串
%d #有符号十进制整数, %06d 表示输出的整数显示位数字,不足的地方使用0补全
%f #浮点数, %.02f 表示小数点后只显示两位
%% #输出%
语法格式:
print '格式化字符串' % 变量 1
print '格式化字符串' % (变量 1,变量 2...)
(8)变量的命名
1.标识符和关键字
标识符:程序员定义的变量名,函数名;名字需要有见名知义的效果
标识符可以由字母,下划线和数字组成,不能以数字开头,不能与关键字重名
关键字:在python内部已经使用的标识符,关键字具有特殊的功能和含义
开发者不允许定义和关键字相同的名字的标示符
2.查看python中的关键字
使用import关键字可以导入一个工具包
在python中不同的工具包,提供有不同的工具
3.变量的命名规则
命名规则可以被视为一种惯例,别无绝对与强制;目的是为了增加代码的识别和可读性
(1).在定义变量时,为了保证代码格式, = 的左右两边该各保留一个空格
(2).在python中,如果变量名需要由两个或多个单词组成,可以按照以下方式命名(python中常用)
每个单词都使用小写字母
单词与单词之间使用_下划线连接
例如:first_name,last_name....
驼峰命名法:(其他语言常用的命名法)
当变量名是由两个或多个单词组成,还可以利用驼峰命令法来命名
小驼峰命名法:
第一个单词以小写字母开始,后续单词的首字母大写
firstName lastName
大驼峰命名法:
每一个单词的首字母都采用大写字母
FirstName LastName
二、实验:
1.第一个简单的python程序
print('hello world') #输出 hello word
print('hello python') #输出 hello python
单行注释:用 #
多行注释:用 """ """
2.输入与输出
(1)常用的字符类型
int: 整型
str: 字符串
float: 浮点型
[kiosk@foundation66 ~]$ python2
Python 2.7.5 (default, Feb 20 2018, 09:19:12)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import getpass #导入模块
>>> num=getpass.getpass('请输入密码:')
请输入密码:
>>> num
'redhat'
>>> type(num) #查看数据类型
>>>
>>> age=raw_input('请输入年龄:')
请输入年龄:18
>>> type(age)
>>> int(age)
18
>>> age > 19 #由于age为字符串类型,无法比较大小,所以判断结果有误
True
>>> age
'18'
>>> int(age) > 19 #强制类型转换为整型
False
(2)格式化输出
%d #整型
%s #字符串
%f #浮点型
[kiosk@foundation66 ~]$ ipython
Python 2.7.5 (default, Feb 20 2018, 09:19:12)
Type "copyright", "credits" or "license" for more information.
IPython 3.2.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: name = 'westos' #定义变量并赋值
In [2]: age = 11
In [3]: print('%s的年龄为%d' %(name,age)) #格式化输出
westos的年龄为11
In [4]: name = 'lee' #给变量重新赋值
In [5]: print('%s的年龄为%d' %(name,age))
lee的年龄为11
In [6]: age = 18
In [7]: print('%s的年龄为%d' %(name,age))
lee的年龄为18
In [11]: money = 8902.349823
In [12]: name = 'lily'
In [13]: print('%s本月的工资为%f' %(name,money))
lily本月的工资为8902.349823
In [14]: print('%s本月的工资为%.2f' %(name,money)) #保留两位小数
lily本月的工资为8902.35
In [15]: print('%s本月的工资为%.1f' %(name,money)) #保留一位小数
lily本月的工资为8902.3
In [16]: sid = 1
In [17]: print('%s的学号为%d' %(name,sid))
lily的学号为1
In [18]: print('%s的学号为0716100%d' %(name,sid)) #前边可以添加任意多个固定数字
lily的学号为07161001
In [19]: scale = 0.1
In [22]: print('数据比例是%.2f' %(scale * 100))
数据比例是10.00
In [1]: name = '周雨彤'
In [2]: print(name)
周雨彤
In [3]: type(name) #str表示一个字符串类型
Out[3]: str
In [4]: age = 18
In [5]: print(age)
18
In [6]: type(age) #int表示一个整形
Out[6]: int
In [7]: gender = True
In [8]: type(gender) #bool表示一个布尔型,真:True 假:False
Out[8]: bool
In [9]: height = 180.78
In [10]: type(height) #float表示一个浮点型
Out[10]: float
In [11]: weight = 7.9
In [12]: price = 10
In [13]: money = price * weight
In [14]: print(mo)
%more money
In [14]: print(money)
79.0
In [15]: type(money)
Out[15]: float
In [16]: money = money - 5 #变量名只有在第一次出现的时候,才是定义变量
In [18]: print(money)
74.0
4.数据类型
使用:type(变量名) 查看变量的数据类型
[kiosk@foundation66 ~]$ python3
Python 3.6.6 (default, Jan 15 2019, 11:25:23)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 1
>>> type(a) #int为整型
>>> float(a) #强制转换为浮点类型(float)
1.0
>>> b = 2.3
>>> int(b)
2
>>> str(b) #强制转换为字符串类型(str)
'2.3'
删除内存中的变量:
>>> a = 1.2
>>> a
1.2
>>> del a #删除内存中的变量
>>> a
Traceback (most recent call last):
File "", line 1, in
NameError: name 'a' is not defined
布尔数据类型:
>>> a = 'hello'
>>> bool(a)
True
>>> bool(0)
False
>>> b = ''
>>> b
''
>>> bool(b)
False
center的使用:
>>> a.center(40)
' hello '
>>> a.center(60)
' hello '
>>> a.center(60,'*')
'***************************hello****************************'
>>> print("学生管理系统".center(60,'-'))
---------------------------学生管理系统---------------------------
>>> print("学生管理系统".center(60,'*'))
***************************学生管理系统***************************
需求:
输入学生姓名
依次输入学生的三门科目成绩
计算该学生的平均成绩,并打印
平均成绩保留一位小数
计算语文成绩占总成绩的百分比,并打印
代码:
# 输入姓名,input表示接收用户输入,默认为字符串类型
name = input("学生姓名:")
# 输入成绩,float表示强制转换为浮点数类型
Chinese = float(input("语文成绩:"))
Math = float(input("数学成绩:"))
English = float(input("英语成绩:"))
# 计算该学生的总成绩
SumScore = Chinese + Math + English
# 计算该学生的平均成绩
AvgScore = SumScore / 3
# 计算语文成绩占总成绩的百分比(先乘以100 再添加一个%即可)
ChinesePecent = (Chinese / SumScore) * 100
# %.1f表示保留1位小数
print('%s 的平均成绩为%.1f' %(name,AvgScore))
# 两个%表示百分号
print('%s 的语文成绩占总成绩的%.2f%%' %(name,ChinesePecent))