python学习 day1

Posted 飞奔的小水牛

tags:

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

 

1、python语言划分:

编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言

编译型与解释型

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.

这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

 

2、python语言优缺点

优点
简单————Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。

易学————就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。

免费、开源————Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。

高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!

解释性————这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。

面向对象————Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

丰富的库————Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

规范的代码————Python采用强制缩进的方式使得代码具有极佳的可读性。

缺点
运行速度,有速度要求的话,用C++改写关键部分吧。(除非是程序对速度要求特别严格,一般可以忽略)
国内市场较小(国内以python来做主要开发的,目前只有一些web2.0公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。
中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。

3、python编码

python2默认的编码是ASCII,python3默认的编码是utf-8

 1 python2
 2 
 3 #!/usr/bin/python
 4 # -*- coding: UTF-8 -*-
 5  
 6 print "你好,世界"  #如何不强制指定字符集是会出现乱码
 7 
 8 
 9 python3
10 #!/usr/bin/python
11 
12 print ("你好,世界")  #不指定默认也可以输出中文

asiic:8位 == 1个字节 ,表示一个字符

万国码:unicode 把所有国家的语言包含进去

unicode升级:
utf-8:最少用8位表示一个字节

单位的转化:
8bit 1bytes
1024bytes == 1kb
1024kb == 1mb
1024mb == 1Gb
1024Gb == 1Tb

4、变量

把程序运行的中间结果临时的存在内存里,以便后续的代码调用

声明变量

1 #!/usr/bin/env python
2  
3 name = "Tom"

上述代码声明了一个变量,变量名为: name,变量name的值为:"Tom"

变量定义的规则:

变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
[\'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\']
变量的定义要具有可描述性。

5、常量

常量就是指不变的量,比如π:3.1415826....;在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量:AGE = 18

6、用户交互

1 #!/usr/bin/env python
2   
3 # 将用户输入的内容赋值给 name 变量
4 name = input("请输入用户名:")
5   
6 print (name)# 打印输入的内容

python2中有raw_input()和input()两种方式,第一种输出结果类型是str,第二种输出结果是int;python3中只有input()类型,输出结果类型是str

7、格式化输出

 1 方法一:
 2 name = input(\'请输入用户名:\')
 3 age = input(\'请输入年纪:\')
 4 job = input(\'请输入工作:\')
 5 Hobbie = input(\'请输入爱好:\')
 6 
 7 msg1 = \'\'\' ------------ info of %s -----------
 8 Name  : %s
 9 Age   : %d
10 job   : %s
11 Hobbie: %s
12 ------------- end -----------------
13 \'\'\' % (name,name,int(age),job,Hobbie)
14 print(msg1)
15 
16 方法二:
17 dic = {\'name\':\'leige\',\'age\':\'20\',\'job\':\'IT\',\'Hobbie\':\'wu\'}
18 dic = {\'name\':name,\'age\':age,\'job\':job,\'Hobbie\':Hobbie}
19 
20 msg2 = \'\'\' ------------ info of %(name)s -----------
21 Name  : %(name)s
22 Age   : %(age)s
23 job   : %(job)s
24 Hobbie: %(Hobbie)s
25 ------------- end -----------------
26 \'\'\' % dic
27 print(msg2)
28 print(\'你的年龄%s ,你的名字%s,学习进度5%%\'% (age,name)) #如果输出结果中含有%号,需要再使用一个%进行转义

8、if、while简单使用

 1 #求1-100以内数字相加的和
 2 #方法一:
 3 i = 1
 4 count = 0
 5 while True:
 6     if i <= 100:
 7         print(i)
 8         i += 1
 9     else:
10         break
11 
12 #方法二:
13 while i <= 100:
14     count += i
15     i += 1
16 print(count)

 

以上是关于python学习 day1的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之路——Day1

python学习之路-day1

Python学习day1作业

Python学习记录day1

python学习day1

坚持Selenium+Python学习之从读懂代码开始 DAY1