我的python学习笔记

python 中的函数概念  


 # 函数,代码复用                                                                                                                                                               

def Add(x, y):                                                          
    return x + y                                                        
print (Add(1, 2))

                                                                        
def Add(x, y, z):                                                       
    return x + y + z                                                                                                                            
print (Add(1, 2))  

当我们试图将一个整型和字符串类型进行相加

  def Add(x, y):                                                                                                                                             
      return x + y                                                                                                                                           
                                                                                                                                                             
  print (Add(1, 'hello')) 


在C/C++中如果两个变量不能相加,这是一个编译时错误

但是在python中,这是一个运行时错误,这也是因为python是解释型语言


当我们试图进行像C++中一样定义函数名相同而参数不同的两个函数时

  def Add(x, y):                                                        
      return x + y                                                      
                                                                        
  def Add(x, y, z):                                                     
      return x + y + z                                                  
                                                                        
  print (Add(1, 2, 4))                                                  
  print (Add(1, 2))  

会提示我们说少了一个参数

其实在python 中的面向对象思想中,本着一切皆对象的原则,函数也是一个对象,称为可调用对象

例如上面我们定义了两个函数,其实是根据动态类型的特性,第二个对象替代了第一个对象,所以第一个函数也就不存在了。

# 但是python支持默认参数                                               
def func(debug=True):                                                   
    if debug:                                                          
        print ("in debug mode")                                        
    print ("done")                                                     
                                                                        
func()                                                                 
func(True) 

# python中函数的返回值可以为多个                                       
                                                                       
def GetPoint(x, y):                                                    
    return x, y                                                        
x, y = GetPoint(1, 3)                                                  
print (x)                                                              
print (y) 


python中的文件操作

本着一切皆对象的思想

这里open()函数返回的并不是一个文件描述符,而是一个文件对象,很明显这个我文件对象中也包含一个文件描述符

# 统计一个文本中,每一行的单词的次数,文本中每一行只有一个单词         
                                                                       
handle = open("./hello.txt", 'w')                                      
                                                                       
handle.write("aaa\n")                                                  
handle.write("aaa\n")                                                  
handle.write("bbbb\n")                                                 
handle.write("bbbb\n")                                                 
handle.write("cccccc\n")                                               
handle.write("cccccc\n")                                               
handle.write("cccccc\n")                                               
handle.close()                                                         
                                                                       
handle = open("./hello.txt", 'r')                                      
words = {}  # 定义一个字典来保存单词                                   
for word in handle:                                                    
    word = word[:-1]    # 去掉末尾的'\n'                               
    if word not in words:   # 使用关键字来盘ing这个单词是否出现        
        words[word] = 1  # 若是不存在,就将其value(出现次数设置为 1) 
    else:                                                              
        words[word] += 1    # 若存在,就将其出现次数加 1               
handle.close()                                                         
print (words)       
# 当一个项目中的代码量较大时,我们就需要交给代码放入到多个文件中     
  # 可以使用 import 关键字 ,引入其他模块中的代码                      
                                                                       
                                                                       
  # 方法一,引入整个模块                                               
  import add                                                           
  print (add.Add(1, 2))                                                
                                                                       
                                                                       
  # 方法二,引入某个模块中的函数                                       
                                                                       
CCfrom add import Add                                                  
  print (Add(2, 3))                                                    
                                                                       
  # 引入模块名,并且给模块名取一个别名                                 
                                                                       
CCimport add                                                           
  a = add                                                              
  print (a.Add(4, 5)) 

# 模块的查找顺序为 先查找当前目录,在查找Python的安装目录.             
# 这里来查看一下模块的查找路径                                         
import sys                                                             
print (sys.path) 


我们发现当你导入一个模块时,你当前目录下就会多一个xxx.pyc的文件,这个文件是用于保存你当前模块的二进制文本信息。

我们在C语言中是如何完成两个数的交换的

int a = 23,b = 34;
int tmp = a;
a = b;
b = tmp;

在python 中是如何完成两个数的交换的

x = 20                                                                 
y = 39                                                                 
                                                                       
print (x, y)                                                           
x, y = y, x                                                            
print (x, y)    


若是你写了如下代码:


# python 中的函数 类 lamda 会改变变量的作用域                          
# if ,else,elif,while,for,try/catch 都不会改变作用域                   
                                                                       
if True:                                                               
    i = 2                                                              
    print (i)                                                          
                                                                       
print (i)   

  def func():                                                          
      i = 2                                                            
      print (i)                                                        
  print (i)                                                            
               







猜你喜欢

转载自blog.csdn.net/Misszhoudandan/article/details/80913746