设为首页 加入收藏

TOP

Python 3 学习笔记(四)----字符编码、函数与参数(一)
2017-09-30 17:00:15 】 浏览:2090
Tags:Python 学习 笔记 ---- 字符 编码 函数 参数

一、字符编码与转码

1.在python2默认编码是ASCII, python3里默认是unicode
2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

在python2.x中:

 1 -*- coding:UTF-8 -*-
 2 import sys
 3 print(sys.getdefaultencoding())  #查看系统的默认编码
 4     
 5 msg = "学习使人进步"
 6 msg_gbk = msg.decode("UTF-8").encode("gbk")   #由"UTF-8"格式转到"gbk",首先要将UTF-8解码成unicode,再由unicode编码成gbk。在解码时,要声明现在自己是什么格式的
 7 msg_gb2312 = msg_gbk.decode("gbk").encode("gb2312")
 8     
 9 print(msg)
10 print(msg_gbk)
11 print(msg_gb2312)

在python3.x中:

 1 #-*- coding:gbk -*-
 2 
 3 import sys
 4 print(sys.getdefaultencoding())
 5 #如果文件编码改成gbk,需要在头声明是gbk(就是pycharm右下角)
 6 msg = "三体"   #这个"三体"的格式还是Unicode,因为改变的只是文件的编码,python的编码总是Unicode
 7 print(msg)
 8 
 9 
10 '''
11 #由UTF-8格式转到gbk格式
12 
13 s = "科幻小说"
14 print(s.encode())    #打印utf-8的编码
15 s_gbk = s.encode("gbk")
16 print(s_gbk)   #默认就是unicode,不用再decode(UTF-8是Unicode的扩展集)
17 
18 #由gbk格式再转回UTF-8格式
19 
20 s_utf8 = s_gbk.decode("gbk").encode("utf-8")
21 print(s_utf8)
22 '''

二、函数与函数式编程

编程的方法:

1.象:特点-->类-->class
2.面向过程:特点-->过程-->def
3.函数式编程:-->函数-->def

函数的定义:

数学中:一般的,在一个变化过程中,假设有两个变量x、y,如果对于任意一个x都有唯一确定的一个y和它对应,那么就称x是自变量,y是x的函数。x的取值范围叫做这个函数的定义域,相应y的取值范围叫做函数的值域。

编程中:函数是逻辑结构化和过程化的一种编程方法。

Python中的函数定义法:

 

 1 def test(x):
 2     '''The function definitions'''
 3     x+=1
 4     return x
 5             
 6 
 7 def:定义函数的关键字
 8 test:函数名
 9 ():内可定义形参
10 '''''':文档描述(非必要,但是强烈建议为你的函数添加描述信息)
11 x+=1:泛指代码块或程序处理逻辑
12 return:定义返回值

 

函数型:

1 def func1():
2     '''test1'''
3     print("this is func1")
4     return 0
5 

过程型(将程序中每一种功能都定义为def包含的过程当中,使用的时候直接用函数名+()使用)

1 def func2():
2     '''test2'''
3     print("this is func2")
4 #过程就是没有返回值的函数
5     
6 y = func2() #调用函数

使用函数替换重复的代码:

 1 import time
 2 def logger():
 3     time_format = "%Y-%m-%d %X" #X代表时分秒
 4     time_now = time.strftime(time_format)
 5     with open("log.txt","a+") as f:
 6         f.write("%s The end\n" %time_now)
 7 '''
 8 def test1():
 9     '''testing'''
10     print("start append log...")
11     with open("log.txt","a+") as f:
12     f.write("The end")
13     
14 def test2():
15     '''testing'''
16     print("start append log...")
17     with open("log.txt","a+") as f:
18     f.write("The end")
19     
20 def test3():
21     '''testing'''
22     print("start append log...")
23     with open("log.txt","a+") as f:
24     f.write("The end")
25 '''
26 
27 def test1():
28     '''testing'''
29     print("start append log...")
30     logger()
31 
32 def test2():
33     '''testing'''
34     print("start append log...")
35     logger()
36 
37 def test3():
38     '''testing'''
39     print("start append log...")
40     logger()
41 
42 x = test1()
43 y = test2()
44 z = test3()

函数三大优点:

1.代码重用
2.保持一致性
3.可扩展性

函数返回值:

 1 def test1():
 2     '''return test'''
 3     msg = "刘慈欣 地球往事"
 4     print(msg)
 5 
 6 def test2():
 7     '''return test'''
 8     msg = "刘慈欣 地球往事"
 9     print(msg)
10     return msg
11 
12 a = test1()
13 b = test2()
14 
15 print("返回值为 [%s]" %a)
16 print("返回值为 [%s]&q
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇学习笔记TF035:实现基于LSTM语言.. 下一篇迭代器与生成器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目