python基础知识学习(3)

一.函数及其调用

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。

我们可以定义一个由自己想要功能的函数,以下是简单的规则:

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

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

2.函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

3.return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于

返回None.

定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。调用函数时的参数,为实际参数。

二.参数

调用函数时可使用的正式参数类型:

2.1.必备参数

必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样,不然会出现语法错误。

2.2.关键字参数(使用<键-值>来传参)

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

2.3.默认参数

调用函数时,默认参数的值如果没有传入,则被认为是默认值。

注意:所有位置参数必须出现位于参数列表的最后面;

默认参数的值只在定义时被设置计算一次,如果函数修改了对象,默认值就被修改了。

2.4.不定长参数(可变长参数)

你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。

 基本语法如下:

def functionname([formal_args,] *var_args_tuple ):

   "函数_文档字符串"

   function_suite

   return [expression]

加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可

2.5变量作用域

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。

eg:

total = 0; # 这是一个全局变量

def sum( arg1, arg2 ):
   #返回2个参数的和."
   total = arg1 + arg2; # total在这里是局部变量.
   print(tota1)
   return total;
 
#调用sum函数
sum( 10, 20 );
print (total) 

30,0

2.5 函数的递归调用

前提:

1.原问题可以层层分解为类似的子问题,且子问题比原问题规模更小。

2.规模小的问题具有直接解。

方法:

1.寻找分解方法:将原问题转换为子问题求解。

2.设计递归出口:根据规模最小的子问题确定递归终止条件。

eg:求一个数xn次方:

def custom_pow(x,n):
    if x==0:
        return 0
    if n==0:
        return 1
    return x*custom_pow(x,n-1)

x= int(input('请输入x的值:'))
n = int(input('请输入n的值:'))
m = custom_pow(x,n)
print('x的n次幂的结果是:')
print(m)

 

三. Python中的文件操作

Python提供了文件对象,并内置了open函数来获取一个文件对象。Open函数的使用:file_object = open(path,mode)。其中,file_object是调用open函数后得到的文件对象;path是一个字符串,代表要打开文件的路径;而mode是打开文件的模式,常用的模式如下表所示:

文件模式

解释

r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

参数中的[]符号表示括号中的值可以传递也可以不传递

方法

作用/返回

参数

f.close()

关闭文件:用open()打开文件后使用close关闭。

f.read([count])

读出文件:读出count个字节。如果没有参数,读取整个文件

[count]

f.readline()

读出一行信息,保存于list:每读完一行,移至下一行开头。

f.readlines()

读出所有行,保存在字符串列表中。

f.truncate([size])

截取文件,使文件的大小为size。

[size]

f.write(string)

把string字符串写入文件。

字符串

f.writelines(list)

把list中的字符串写入文件,是连续写入文件,没有换行。

字符串

Python中文件操作的常用方法读写操作是文件操作的最主要的操作,下面将主要讲解表中的f.readline()、f.readlines()和f.writelines(list)方法。

实例1:将文件Task1的内容全部读入到fls列表中。

#<程序:读取文件os.py>

f = open("./Task1.txt",'r');
fls = f.readlines()
for line in fls:
line = line.strip(); print (line)#删除空格
f.close()#都要加一个

 实例二:要将文件首字符为“3”的行中每一个数字加起来,不包括3,即“10 5 19 20 37”;然后,将结果写入到文件末尾。

#<程序:读取文件os.py,计算并写回>
f = open("./Task1.txt",'r+'); fls = f.readlines()
for line in fls:
    line = line.strip()
    lstr = line.split()
    if lstr[0] == '3':
       res = 0
       for e in lstr[1:]:
           res+=int(e)
f.write('\n4 '+str(res));
f.close()

例:从键盘输入若干个字符串,逐个将它们写入文件e:\lfile1.txt的尾部,直到输入*时结束,然后从该文件中逐一读出字符串,并在屏幕上显示出来。

(1):

a_list=[ ]
while True:
s=input()
if s=="*"1:
    break
a_list.append(s+'\n')
f1=open("./fate.txt" , "a")
f1.writelines(a_list)
f1.close()
f2=open("./fate.txt","r")
fls=f2.readlines()
for line in fls:
    print(line,end="\n")
f2.close

(2) :

f1=open("./fate.txt" , "w")
while True:
   str=input("请输入字符串:")
   if str="*":
       break;
   else:
       f1.write(str+"\n")
f1.close()
f2=open("./fate.txt","r")
fls=f2.readlines()
for line in fls:
    print(line,end="\n")
f2.close

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值