第2章python编程基础

目录

目录

2.1Python语言基本语法

2.1.1基础数据类型

2.1.2变量和赋值

2.1.3运算符和表达式

2.1.4字符串

2.1.5流程控制

2.2内置数据类型

2.2.1列表

2.2.2元组

2.2.3字典

2.2.4集合

2.3函数

2.3.1函数的定义

2.3.2lambda函数

2.4文件操作

2.4.1文件处理过程

2.4.2数据的读取方法

2.4.3读取CSV文件

2.4.4文件写入与关闭

2.5本章小结

2.6本章习题

2.7本章实训


2.1Python语言基本语法

python最具特色的就是使用缩进来表示代码块,不需要使用大括号{ }。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

【例2-1】python程序实例。

2.1.1基础数据类型

python3中有六种标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)可变不可变

python3支持的数据类型有int(整数)、float(浮点数)、bool(布尔数)、complex(复数)四种

只有int类型,表示为长整型,没有大小限制;

float就是通常说的小数,可以用科学计数法来表示;

bool型有True和False两个取值,分别对应的值为1和0并且可以和数字相加;

complex由实部和虚部两部分组成,用a+bj或complex(a,b)表示,实数部分a和虚数部分b都是浮点型。

2.1.2变量和赋值

python中的变量是不需要声明数据类型的,变量的“类型”是指的内存中被赋值对象的类型,例如:

brower='Google'       #字符串类型

count=100                  #整数类型

addsum=123.45          #浮点数类型

z=2+3j                       #复数类型

同一变量可以反复赋值,而且可以是不同类型,这也是Python语言被称为动态语言的原因,例如:

brower='Google'       #字符串类型

brower=100                  #整数类型

brower=123.45          #浮点数类型

brower=2+3j                       #复数类型

并且,python也允许同时为多个变量赋值。

【例2-2】多变量赋值实例

2.1.3运算符和表达式

python语言支持算术运算符、关系运算符、逻辑运算符

运算符的功能描述
运算符运算符
+ ,—,*,/, % , // ,**算术运算符:加、减、乘、除、取模、整除、幂
<,<=,>,>=,!=,==关系运算符
and,or,not逻辑运算符

优先顺序:逻辑运算符<关系运算符<算术运算符

算术运算符及用法
运算符说明范例结果
求反—5—5
*乘法8.5*3.529.75
/除法11/33
%取余数8.5%3.51.5
+加法11+314
减法5-19—14
**乘方(幂)2**532

2.1.4字符串

字符串被定义为引号之间的字符集合,在python中字符串用单引号(')、双引号('')、三引号(''')括起来,且必须配对使用。

转义字符及说明
转义字符说明
\n换行
\\反斜杠
\''双引号
\t制表符

python允许用r+" "的方式表示" "内部的字符串,默认不转义。

【例2-3】转义字符的使用。

 1.字符串的运算

字符串子串可以用分离操作符([ ]或者[:])选取,python特有的索引规则为:第一个字符的索引是0,后续字符索引依次递增,或者从右向左编号,最后一个字符的索引号为-1,前面的字符依次减1.表2-4给出了字符串的常用运算。

表2-4字符串的运算实例
运算符说明范例结果
+连接操作

str1='Python'

str2=',program!'

str1+str2

'Python,program!'
*重复操作

str='Python’

str*2

'PythonPython'
[ ]索引

str='Python'

str[2]

str2[-1]

't'

'n'

[:]切片

str='Python'

str[2:5]

str[-4:-1]

'tho'

'tho'

注:如果*后面的数字是0,就会产生一个空字符串。例如 'Python' * 0 的运算结果是' '。

2.字符串常见方法属性

表2-5字符串的方法描述
方法/函数作用
str.capitalize()返回字符串的副本,其首字符大写,其余字符小写
str.count(sub[ ,start[ ,end]])返回[start,end]内sub的非重叠出现次数,start和end可选
str.endswith(sub[ ,start[ ,end]])返回布尔值,表示字符串是否以指定的sub结束,同类方法为str.startswith()
str.find(sub[ ,start[ ,end]])返回字符串中首次出现子串sub的索引位置,start和end可选,若未找到sub,返回-1,类似方法为str.index()
str.split(sep=None)使用sep作为分隔符拆分字符串,返回字符串中单词的列表,分割空字符串
str.strip([chars])删除字符串前端和尾部chars指定的字符集,如果省略或None,则删除空白字符
str.upper()/str.lower()将字符串中所有字符转换为大小/小写

2.1.5流程控制

1条件语句

分支结构又称为选择结构,根据判断条件,程序选择执行特定的代码。在Python语句中,条件语句使用关键字if、elif、else来表示,基本语法格式如下:

if condition:
    if-block
[elif condition:
    elif-block
else:
    else-block]

【例2-4】判断一个学生的考试成绩是否及格:如果成绩大于或等于60分,则打印“及格”,否则输出“不及格”。

注意:一个语句最多只能拥有有个else子句,且else子句必须是整条语句的最后一个字句,else没有条件。

【例2-5】将化学分子式翻译为其所表示物质对应的英文。

2.循环语句

循环语句是指满足一定的条件的情况下,重复执行特定代码块的一种编码结构。Python中,常见的循环语句是while循环和for循环。

(1)while循环语法格式

while condition:
    while-block

【例2-6】求1+2+3+4+5的值。

 注意print的缩进位置否则容易出错

while循环嵌套:语句块中的语句也可以是另一个while语句。

【例2-7】输出20以内能被3整除的数。

 end=“ ”表示输出的结果以空格分隔

(2)for循环语法格式

for v in Seq:
    for_block

【例2-8】求1+2+3+4+5的值

 【例2-9】将下面的数组中的奇数变成它的平方,偶数保持不变。

2.2内置数据类型

2.2.1列表

列表是可变的

1.列表的常用方法

(1)L.appnd(v):把元素V添加到列表L的结尾,相当于a[len(a)]=v

【例2-10】在列表中追加元素

(2)L.insert(i,v):将值V插入列表L的索引i处。

【例2-11】在列表中插入元素。

(3)L.index(x):返回列表中第一个值为X的元素的索引。

【例2-12】返回第一个指定值的索引。

(4)L.remove(v)从列表L中移除第一次找到的值v

【例2-13】删除列表中第一次找到的数值。

(5)L.pop([i]):从列表的指定位置删除元素,并将其返回。如果没有指定索引,L.pop()返回最后一个元素。

【例2-14】删除列表中的指定元素。

(6)L.reverse():倒排列表中的元素。

【例2-15】列表元素倒排。

(7)L.count(x):返回x在列表中出现的次数。

【例2-16】返回列表中指定数组的出现次数。

注意list的大小写 

(8)L.sort(Key=None,reverse=False):对链表中的元素进行适当的排序。reverse=True为降序,reverse=False为升序(默认)。

【例2-17】列表元素排序。

2.列表推导式

列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个推导序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建序列。

语法格式为:
[<expr1>for k in L if<expr2>]
语义:
returnList=[]
for k in L:
    if<expr2>:
        returnList.append(<expr1>)
return returnList;

【例2-18】列表推导式实例。

注意X * Y之间要用空格隔开 

【例2-19】随机生成30个整数构成列表,并计算列表均值,然后使用列表中每个元素逐个减去均值所得的数值重新构建列表。

【例2-20】计算矩阵的转置矩阵。

2.2.2元组

元组是一种固定长度,不可变(即不能给元组的一个独立的元素赋值)序列。用途:坐标(x,y),数据库中的员工记录等。

元组和字符串一样,不可改变,即不能给元素的一个独立的元素赋值。

元组和列表的不同之处在于元组的元素圆括号(),而列表用的是方括号[ ]。

【例2-21】元组的创建。

2.2.3字典

字典也称映射,是一个由键/值对组成的非排序可变结合体。键/值对在字典中以如下方式标记。

dict={key1:value1,key2,value2}

表2-6字典的常用方法及描述
方法描述
dict.get(key,default=None)返回指定键的值,若值不在字典中则返回default
dict.iitems( )以列表返回可遍历的(键/值)元组数组
dict.keys( )以列表返回一个字典中所有的键
dict.values( )以列表返回字典中的所有值

【例2-22】字典应用实例。

2.2.4集合

集合是一个由唯一元素组成的非排序集合体(集合中的元素没有特定顺序且不重复)。使用set( )

创建的是空集合,使用{ }创建的是空字典 

【例2-23】集合用法示例。

 

2.3函数

2.3.1函数的定义

函数定义的语法格式如下所示:
def function_name(arguments):
    function_block

关于函数定义的说明:

(1)函数代码块以def关键字开头,后接函数标识符名称和圆括号( )。

(2)function_name是用户自定义的函数名称。

(3)arguements是零个或多个参数,且任何传入参数必须放入圆括号内。

(4)最后必须跟一个冒号(:),函数体从冒号开始开始,并且缩进。

(5)function_block是实现函数功能的语句块。

【例2-24】编写函数计算n!

 

2.3.2lambda函数

Python使用lambda来创建匿名函数,准确地说,lambda只是一个表达式,函数体比def定义的函数简单得多,在lambda表达式中只能封装有限的逻辑。除此之外,lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间中的参数。

【例2-25】假如要编写函数实现计算多项式1+2x+y²+zy的值,可以简单地定义一个lambda函数来完成这个功能。

 

2.4文件操作

2.4.1文件处理过程

一般的文件处理过程为:

(1)打开文件:open()函数。

(2)读取/写入文件:read( )、readline( )、readlines( )、write( )等。

(3)对读取到的数据进行处理。

(4)关闭文件:close( )。

对文件操作之前需要用open( )函数打开文件,打开之后将返回一个文件对象(file对象),open函数的语法格式如下:

file_object=open(file_name[,access_mode="r",buffering=-1])

其中,file_object为打开文件的对象;file_name是包含要打开的文件名路径(绝对路径,或是相对路径)的字符串,包含路径名及扩展名。

2.4.2数据的读取方法

表2-7数据读取方式表述
方法描述
read([size])

读取文件所有内容,返回字符串类型,参数size表示读取的数量,以byte为单位,可以省略。

readline([size])读取文件一行的内容,以字符串形式返回,若定义了size,则读出一行的一部分
readlines([size])读取所有行到列表里面[line1,line2,...,linen](文件每一行是list的一个成员),参数size表示读取内容的总长

【例2-26】读取txt文件。

所读取的txt文件内容如下所示。 

file=open("泰戈尔的诗.txt",mode='r')
content=file.read()
print(content)
file.close()

【例2-27】读取txt文件时指定读取数量。

f=open("泰戈尔的诗.txt",mode='r')
content=f.read(10)      #设置读取内容的长度size
print(content)
f.close()
print(type(content))

【例2-28】按行读取txt文件

f=open("泰戈尔的诗.txt",mode='r')
content=f.readlines()
print(content)
f.close()

2.4.3读取CSV文件

CSV文件也称为字符分割值文件,因为分隔符除了逗号,还可以是制表符。CSV是一种常用的文本格式,用以存储表格数据,包括数字或者字符。CSV文件具有如下特点:

(1)纯文本,使用某个字符集,例如ASCII、Unicode或GB2312。

(2)以行为单位读取数据,每行一条记录。

(3)每条记录被分隔符分隔为字段。

(4)每条记录都有同样的字段序列。

python内置了csv模块,import csv之后就可以读取CSV文件了。

【例2-29】读取CSV文件。

import csv
with open("student.csv","r")as f:
    reader=csv.reader(f)
    rows=[row for row in reader]
for item in rows:
          print(item)

2.4.4文件写入与关闭

1.文件的写入

write( ) 函数用于向文件中写入指定字符串,同时需要将open( )函数中文件打开的参数设置为mode=w。其中,write( )是逐次写入,writelines( )可将一个列表中的所有数据一次性写入文件。如果有换行需要,则需要在每一条数据后增加换行符,同时用“字符串.join()”的方法将每个变量数据联合成一个字符串,并增加间隔符“\t”。此外,对于写入CSV文件的write( )方法,可以调用writerow( )函数将列表中的每个元素逐行写入文件。

【例2-30】文件的写入。

import csv
content=[['0','hanmei','23','81'],
         ['1','mayi','18','99'],
         ['2','jack','21','89']]
f=open("test.csv","w",newline='')
#如果不加newline="",就会出现空行
content_out=csv.writer(f)     #生成writer对象存储器
for con in content:
     content_out.writerow(con)
f.close()

2.关闭文件

【例2-31】跳过文件的注释内容和缺失值。

def skip_header(f):
    line=f.readline()
    while line.startswith('#')
        line=f.readline()
    return line
def process_file(f)
     #调用函数使其跳过文件头部
    line=skip_header(f).strip()
    print(line)            #打印第一行有用数据
    for line in f:
        if line.startswith("-")or line.startswith("#"):            #处理缺失值
            line=line.strip()
            print(line)
input_file=open("泰戈尔的诗a.txt",'r')
process_file(input_file)
input_file.close()

2.5本章小结

本章主要介绍了Python编程基础,主要包括Python的基本用法、内置数据类型。函数以及文件操作。

2.6本章习题

2.7本章实训

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值