11卢凯欣 第二次作业——Python基础和软件工程

1、请阐述,你现在对这门课的理解,以及你希望学完这门课之后,自己能学会什么,学完后能做些什么?

    软件工程这门课主要学习了软件测试、软件工程师的成长、编写代码的规范、团队合作开发软件的重要性、还有开发软件项目的总体流程、IT的发展创新等等,是一门实践性很强的课程,我在专业课上学习了很多专业课程,能够编写程序,实现某些具体的功能,但这些都偏向于“软件”,而非“工程”。在学习软件工程之前,我也有过与同学组队共同开发一个应用程序的经历,但那时,我们也只知道分析这个程序应该实现哪些功能、可以拆分成哪些模块、每个人可以分配哪些任务。而在学习后,我才发现真正的团队开发,真正的软件工程是有很多流程规范的。就比如说最开始的选题和需求分析阶段,我们以往的理解就是想想要实现什么功能,决定好了就可以开始写代码了。《构建之法》却告诉我们,需求分析没有这么简单,开发者要能发现目标用户的需求,要区分需求的优先级,要编写出明确的规格说明来指导开发,编写代码前还要对软件结构进行分析设计。在软件开发的过程中,分析、设计、管理这些理论工作的重要性,不比写代码的重要性低,这是软件工程带给我的最深刻的感受。

2、提高题目(提升技能,自选一个Python常用库进行学习,并整理出自己的总结笔记)

一、变量赋值及命名规则
① 声明一个变量及赋值

name1="solo"
name2=name1
print(name1,name2)
name1 = "hehe"
print(name1,name2)

 #name1的值为hehe,name2的值为solo

② 变量命名的规则

1 1、变量名只能是 字母、数字或下划线的任意组合
2 2、变量名的第一个字符不能是数字
3 3、以下关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for',
'from', 'global','if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

二、字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII:最多只能用 8位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。显然ASCII码无法将世界上的各种文字和符号全部表示。

Unicode:它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,注:此处说的的是最少2个字节,可能更多。

UTF-8:是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
注:python2.x版本,默认支持的字符编码为ASCll python3.x版本,默认支持的是Unicode,不用声明字符编码可以直接显示中文。

 扩展:字符编码和转码,bytes和str区别

    Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes(类似int和long之间自动转换),正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。这是件好事。不管怎样,字符串和字节包之间的界线是必然的,下面的图解非常重要,务请牢记于心:

字符串可以编码成字节包,而字节包可以解码成字符串:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-solo
msg = "里约奥运"
 
print(msg.encode("utf-8"))                      #如果不指定编码格式,默认为utf-8
#b'\xe9\x87\x8c\xe7\xba\xa6\xe5\xa5\xa5\xe8\xbf\x90'
print(b'\xe9\x87\x8c\xe7\xba\xa6\xe5\xa5\xa5\xe8\xbf\x90'.decode("utf-8"))
#里约奥运

为什么要进行编码和转码?
  由于每个国家电脑的字符编码格式不统一(列中国:GBK),同一款软件放到不同国家的电脑上会出现乱码的情况,出现这种情况如何解决呢?! 当然由于所有国家的电脑都支持Unicode万国码,那么我们可以把Unicode为跳板,先把字符编码转换为Unicode,在把Unicode转换为另一个国家的字符编码(例韩国),则不会出现乱码的情况。当然这里只是转编码集并不是翻译成韩文不要弄混了。

① Python3.0进行编码转换(默认Unicode编码)

name = "李伟"                     #此时name为Unicode编码
name1 = name.encode("utf-8")      #Unicode转为UTF-8
name2 = name1.decode("utf-8")     #UTF-8转为Unicode

name3 = name.encode("gbk")       #Unicode转为GBK
name4 = name3.decode("gbk")      #GBK转为Unicode

② Python2.0中的编码转换(默认ascii编码)

① 声明字符编码(utf-8)

# -*- coding:utf-8 -*-
name = "李伟"                   #ascii码里是没有字符“你好”的,此时的name为uft-8

name1 = name.decode("utf-8")    #UTF-8转为Unicode
name2 = name1.encode("gbk")     #Unicode转为gbk

② 使用默认字符编码(ascii)
name = "nihao"              #英文字符,且第二行字符声明去掉,此刻name为ascii码

name1 = name.decode("ascii")     #ascii码转为unicode
name2 = name1.encode("utf-8")  #unicode转为utf-8
name3 =name1.encode("gbk")     #unicode转为gbk

  

转载于:https://www.cnblogs.com/lkx1237/p/10997335.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值