Python学习心得——基础知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习心得——基础知识相关的知识,希望对你有一定的参考价值。

一、lambda表达式

1、定义

针对简单的函数,用lambda表达式来展现更方便。

2、样例

1 #普通函数
2 def f1(a):
3     return a+1
4 print(f1(7))
5 
6 #用lambda表达式来实现
7 
8 f2=lambda a: a+1
9 print(f2(7))

 

二、python内置函数

1、常见内置函数表

技术分享

2、需要熟练掌握的内置函数如下

abs(),all(),any(),bin(),bool(),bytes(),chr(),dict(),dir(),divmod(),enumerate(),eval(),filter(),float(),globals(),help(),hex(),id(),input(),int(),isinstance(),len(),list(),locals(),map(),max(),min(),oct(),open(),ord(),pow(),print(),range(),round(),set(),sorted(),str(),sum(),tuple(),type()

 

三、随机验证码实例

此处引用了老师的随机验证码实例。

 1 #实现六位随机验证码,包括数字与大写字母
 2 import random
 3 temp = ‘‘
 4 for i in range(6):
 5     num = random.randrange(0,5)         #让出现数字的位置随机
 6     if num == 1 or num == 3:
 7         rad1 = random.randrange(0,10)
 8         temp = temp + str(rad1)
 9     else:
10         rad2 = random.randrange(65,91)
11         temp = temp + chr(rad2)
12 print(temp)

 

四、内置函数的排序方法

1、方式一

1 #sort()排序,对象的元素必须是同类型
2 
3 li=[10,8,5,28,9,6]
4 li.sort()
5 print(li)

 

 

 

五、文件操作

1、打开文件

文件句柄=open(‘文件路径‘,‘模式‘)

 

2、打开文件模式

模式 描述
r 只读模式【默认】
r+ 读写【可读,可写】
rb 以二进制格式读取,文件指针放在文件开头
rb+ 以二进制读取和写入方式打开文件
w 只写模式【不可读;不存在则创建;存在则清空内容;】
w+ 写读【可读,可写】
wb 打开文件以二进制方式写入,文件存在则覆盖,不存在则创建新文件
wb+ 以二进制方式写入和读取文件,存在则覆盖现有文件,不存在则创建新文件
x 只写模式【不可读;不存在则创建,存在则报错】
x+ 写读【可读,可写】
a 追加模式【不可读;   不存在则创建;存在则只追加内容;】
a+ 写读【可读,可写】
ab 以二进制格式追加在文件末尾,不存在则创建该文件

 

3、常见操作方法

技术分享
  1 class TextIOWrapper(_TextIOBase):
  2     """
  3     Character and line based layer over a BufferedIOBase object, buffer.
  4     
  5     encoding gives the name of the encoding that the stream will be
  6     decoded or encoded with. It defaults to locale.getpreferredencoding(False).
  7     
  8     errors determines the strictness of encoding and decoding (see
  9     help(codecs.Codec) or the documentation for codecs.register) and
 10     defaults to "strict".
 11     
 12     newline controls how line endings are handled. It can be None, ‘‘,
 13     ‘\\n‘, ‘\\r‘, and ‘\\r\\n‘.  It works as follows:
 14     
 15     * On input, if newline is None, universal newlines mode is
 16       enabled. Lines in the input can end in ‘\\n‘, ‘\\r‘, or ‘\\r\\n‘, and
 17       these are translated into ‘\\n‘ before being returned to the
 18       caller. If it is ‘‘, universal newline mode is enabled, but line
 19       endings are returned to the caller untranslated. If it has any of
 20       the other legal values, input lines are only terminated by the given
 21       string, and the line ending is returned to the caller untranslated.
 22     
 23     * On output, if newline is None, any ‘\\n‘ characters written are
 24       translated to the system default line separator, os.linesep. If
 25       newline is ‘‘ or ‘\\n‘, no translation takes place. If newline is any
 26       of the other legal values, any ‘\\n‘ characters written are translated
 27       to the given string.
 28     
 29     If line_buffering is True, a call to flush is implied when a call to
 30     write contains a newline character.
 31     """
 32     def close(self, *args, **kwargs): # real signature unknown
 33         关闭文件
 34         pass
 35 
 36     def fileno(self, *args, **kwargs): # real signature unknown
 37         文件描述符  
 38         pass
 39 
 40     def flush(self, *args, **kwargs): # real signature unknown
 41         刷新文件内部缓冲区
 42         pass
 43 
 44     def isatty(self, *args, **kwargs): # real signature unknown
 45         判断文件是否是同意tty设备
 46         pass
 47 
 48     def read(self, *args, **kwargs): # real signature unknown
 49         读取指定字节数据
 50         pass
 51 
 52     def readable(self, *args, **kwargs): # real signature unknown
 53         是否可读
 54         pass
 55 
 56     def readline(self, *args, **kwargs): # real signature unknown
 57         仅读取一行数据
 58         pass
 59 
 60     def seek(self, *args, **kwargs): # real signature unknown
 61         指定文件中指针位置
 62         pass
 63 
 64     def seekable(self, *args, **kwargs): # real signature unknown
 65         指针是否可操作
 66         pass
 67 
 68     def tell(self, *args, **kwargs): # real signature unknown
 69         获取指针位置
 70         pass
 71 
 72     def truncate(self, *args, **kwargs): # real signature unknown
 73         截断数据,仅保留指定之前数据
 74         pass
 75 
 76     def writable(self, *args, **kwargs): # real signature unknown
 77         是否可写
 78         pass
 79 
 80     def write(self, *args, **kwargs): # real signature unknown
 81         写内容
 82         pass
 83 
 84     def __getstate__(self, *args, **kwargs): # real signature unknown
 85         pass
 86 
 87     def __init__(self, *args, **kwargs): # real signature unknown
 88         pass
 89 
 90     @staticmethod # known case of __new__
 91     def __new__(*args, **kwargs): # real signature unknown
 92         """ Create and return a new object.  See help(type) for accurate signature. """
 93         pass
 94 
 95     def __next__(self, *args, **kwargs): # real signature unknown
 96         """ Implement next(self). """
 97         pass
 98 
 99     def __repr__(self, *args, **kwargs): # real signature unknown
100         """ Return repr(self). """
101         pass
102 
103     buffer = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
104 
105     closed = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
106 
107     encoding = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
108 
109     errors = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
110 
111     line_buffering = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
112 
113     name = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
114 
115     newlines = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
116 
117     _CHUNK_SIZE = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
118 
119     _finalizing = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
120 
121 3.x
3.0

4、写文件样例

1 f1=open(jishiben.txt,w+)
2 f1.write(hello\\n)
3 f1.close()

#还有个writelines()方法,写入的是一个LIST类型参数

5、读文件样例

f2=open(jishiben.txt,r)
print(f2.read())

#还有个readlines()方法,读得是一个list内容

 

六、用户登录验证样例

  1 #!usr/bin/env python
  2 # -*- coding: utf-8 -*-
  3 
  4 ‘‘‘
  5 作业要求
  6 
  7 结合文件实现
  8 #实现用户登录
  9 #实现用户注册
 10 #判断用户存在性
 11 #实现删除用户
 12 #实现修改密码
 13 
 14 ‘‘‘
 15 
 16 #用户选择操作类型
 17 def f1(args):
 18     """
 19     用于实现调用各种操作类型的函数
 20     :param args: 操作类型序号
 21     :return: 若调用成功,返回True,否则返回False
 22     """
 23     if args==1:
 24         name=input(请您输入用户名:)
 25         pwd=input(请您输入密码:)
 26         result=f2(name,pwd)
 27         if result:
 28             print(登录成功!)
 29         else:
 30             print(登录失败,用户名或密码错误!)
 31     if args==2:
 32         name=input(请您输入注册的用户名:)
 33         pwd=input(请您输入注册密码:)
 34         is2_f4=f4(name)
 35         if is2_f4:
 36             print(用户名已存在,无法注册!)
 37         else:
 38             result2=f3(name,pwd)
 39             if result2:
 40                 print(用户注册成功!)
 41             else:
 42                 print(用户注册失败!)
 43     if args==3:
 44         name=input(请您输入要修改密码的用户名:)
 45         is3_f4=f4(name)
 46         if is3_f4:
 47             pwd=input(请您输入新密码:)
 48             is3_f5=f5(name,pwd)
 49             if is3_f5:
 50                 print(密码修改成功!)
 51             else:
 52                 print(密码修改失败!)
 53         else:
 54             print(您输入的用户名不存在!)
 55     if args==4:
 56         name=input(请您输入要删除的用户名:)
 57         is4_f4=f4(name)
 58         if is4_f4:
 59             is4_f6=f6(name)
 60             if is4_f6:
 61                 print(成功删除用户!)
 62             else:
 63                 print(删除用户失败!)
 64         else:
 65             print(您输入的用户名不存在!)
 66 
 67 
 68 #用户登录
 69 def f2(name,pwd):
 70     """
 71     用于验证用户登录
 72     :param name: 登录的用户名
 73     :param pwd: 登录的用户名密码
 74     :return: 如果用户名与密码正确,返回True,否则返回False
 75     """
 76     with open(login.txt,r,encoding=utf-8) as f:
 77         for line in f:
 78             line=line.strip()
 79             line_list=line.split(@)
 80             if name==line_list[0] and pwd==line_list[1]:
 81                 return True
 82         return False
 83 
 84 #用户注册
 85 def f3(name,pwd):
 86     with open(login.txt,a,encoding=utf-8) as f:
 87         temp=\\n+name+@+pwd
 88         f.write(temp)
 89     return True
 90 
 91 #用户存在性
 92 def f4(name):
 93     ‘‘‘
 94     验证用户名是否在文件中已存在
 95     :param name: 输入的用户名
 96     :return: 若输入的用户名在文件中已存在,返回True,否则返回False
 97     ‘‘‘
 98     with open(login.txt,r,encoding=utf-8) as f:
 99         for line in f:
100             line=line.strip()
101             line_list=line.split(@)
102             if name==line_list[0]:
103                 return True
104         return False
105 
106 #修改密码
107 def f5(name,pwd):
108     ‘‘‘
109     实现修改密码功能,读取原文件login的内容,替换成新密码,如何写入到新文件login2
110     :param name: 需要修改密码的用户名
111     :param pwd: 新密码
112     :return: 修改成功,返回True ,修改失败,返回False
113     ‘‘‘
114     with open(login.txt,r,encoding=utf-8) as f,open(login2.txt,w,encoding=utf-8) as f2:
115         for line in f:
116             line=line.strip()
117             line_list=line.split(@)
118             if name==line_list[0]:
119                 temp=name+@+pwd
120                 line=temp
121                 f2.write(line+\\n)
122             else:
123                 f2.write(line+\\n)
124         return True
125 
126 
127 #删除用户
128 def f6(name):
129     ‘‘‘
130     实现删除用户功能,读取原文件login的内容,过滤掉删除用户,然后写入到新文件login3
131     :param name: 要删除的用户名
132     :return: 删除成功,返回True;删除失败,返回False
133     ‘‘‘
134     with open(login.txt,r,encoding=utf-8) as f,open(login3.txt,w,encoding=utf-8) as f2:
135         for line in f:
136             line=line.strip()
137             line_list=line.split(@)
138             if name==line_list[0]:
139                 continue
140             else:
141                 f2.write(line+\\n)
142         return True
143 
144 print(用户登录请输入 1\\n用户注册请输入 2\\n修改用户密码请输入 3\\n删除用户请输入 4)
145 a=int(input(请您输入操作内容: ))
146 result=f1(a)

 

以上是关于Python学习心得——基础知识的主要内容,如果未能解决你的问题,请参考以下文章

201671010107 2016-2017-2《Java程序设计》第六章学习心得

201671010118 2016-2017-2《Java程序设计》 第六周学习心得

《转》Python学习(19)-python函数-关于lambda

JAVA8 Lambda 表达式使用心得

python基础--lambda表达式

Python学习-lambda表达式