python学习之旅,DAY 1----python基础
本节内容
- 1.python介绍
- 2.python 2 or 3区别
- 3.Hello world程序
- 4.变量
- 5.用户输入
一.python介绍
python的创始人是Ggiodo van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决定开发一个新的脚本解释程序,作为ABC语言的一种继承。python取名自20世纪70年代的电视喜剧*Monty Python’s Flying Circus*(妈耶!牛人的娱乐方式)
最新的TIOBE排行榜,Python赶超C++占据前三,Python崇尚优美,清晰,简单的哲学,是一个优秀并广泛使用的语言。
由上图看,python受欢迎程度整体呈上升趋势,反映出python应用越来越广泛且逐渐得到业内认可。python应用领域很大,因为有足够庞大的第三方库的支撑,在目前大多数计算机领域,Python都足以胜任。
python是一门动态解释型的强定义语言
初学计算机的时候,看到标题,我都不知道在说什么鬼。但学习一门语言之前,先了解一下这门语言的特性,粗略地学习一下这门语言在底层是如何工作的,对养成良好的编程习惯有比较大的好处,下面我们来详细了解一下标题这句话是什么意思。
一.编译型vs解释型
编译是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释是对源程序的翻译与执行一次性执行(也就是说,在你运行这个程序的时候,才一句句翻译)。用比较中二的说法说,假如这是一个比较玄幻的世界,你要对敌人发动一次攻击,编译就是将你发动攻击的一招一式先制作成一个符文,要用的的时候直接将攻击打出去,而解释则是攻击时才一招一式地发动攻击。当然这只是表象,二者最大的区别:对解释执行而言,控制权在解释器而不是用户程序;对编译执行而言,运行的控制权在用户程序。
比较编译型和解释型的性能
编译型
- 优点:因为生成可执行程序,运行时不需要编译,所以编译型语言程序执行效率高,可以脱离语言环境独立运行
- 缺点:移植性较差,且编译之后如果需要修改就需要整个模块重新编译。
解释型
- 优点:有良好的平台兼容性,只要装了解释器,任何环境都可运行,且代码易于维护。
- 缺点:每次运行都要解释,性能上(速度及稳定性)不及编译型语言。
二.动态vs静态
- 动态:在运行期间才会去做数据类型的检查
- 静态:在编译期间做数据类型的检查
简单来说,就是这门编程语言的变量需不需要提前定义
三.强定义vs弱定义
-
两者区分于定义的变量是否只能有一种数据类型
简单来说,就是在没有强制变量转换的情况下,变量是否只有一种数据格式经过我风趣而不是严谨的解释,大家懂什么叫动态解释型的强定义语言了吧?
二.Python 2 or 3 区别
在python官方文档里有这么一句话:
In summary:Python 2.x is legacy,Python 3.x is the present and future of the language
python 3.x对比python2.x有这么几个主要改变:(说不全)
- print是一个函数。 (用代码说明)
print“hello world” #python2.x
print(“hello world”)#python3.x - 从此不再为讨厌的字符编码而烦恼
虽然有更专业的解释,但我更喜欢把这点解释为python从3.x时代开始就能支持中文了。(中国牛逼,我爱我的祖国) - 某些库改名了 这个就不用纠结了,改了跟没改一样,废了。
三.Hello World程序
作为一个语言学习者,第一个程序一定要写helloworld,这是一种仪式感,一种信仰。我后期会再做一篇总结各种语言helloworld程序的推文,权当娱乐。下面我们来看看helloworld的python程序怎么写。
#!/usr/bin/env python
print(“Hello world”)
第一句话可以不用写,这句话主要用于在linux环境下将程序交由bin目录下的python解释器处理
四.变量
看看下面的代码
#coding:utf-8
name=“Geekboy”
上述代码声明了一个变量,变量名为:name,变量值为"Geekboy"
python变量定义直接赋值即可,定义规则与其他高级语言基本一致: 1.变量名只能是字母,数字或者下划线的任意组合 2.变量名第一个字符不能是数字 3.不能以关键字为变量名。(具体可查相关书籍)
ps:#后跟注释的内容,多行注释用""“内容”""表示
四.用户输入
name=input(“What is your name?”)
print(“Hello”+name)
这个程序执行后先是显示What is your name?,当用户输入一串字符串时,程序就会将输入赋给name变量,并打印 如输入Geekboy,则会打印Hello,Geekboy
- 扩展:
如果程序需要用户输入密码,直接明文可见显得太low了,不符合我的风格,这个时候有一个办法可以让大家装一个大逼,可以使用python getpass模块中的getpass方法,下面代码演示:
import getpass
pwd=getpass.getpass(“请输入密码:”)
print(pwd)
这个时候用户输入的时候,输入了什么在显示框是没法显示的,只有最后print出来才知道输入的内容
扯一个题外话,这次密文显示是通过python库实现的,库是一堆其他人写好的封装好的功能,直接拿来就可以用的,以程序员术语来说,就是"白嫖"的。每一次使用库之前,都要import一下这个库,然后才能用库中的各种方法。python3如今支持丰富的第三方库,用以实现各种各样方面的功能,有兴趣的朋友可以多了解。
一次的内容不能太多,你们看的累,老夫写的也累。其实学习计算机的路途上,不管你是从事什么领域,学习语言知识开始。语言只是向计算机表达你诉求的一种工具,在学习的过程中要多思考,多创新,要在普通的点子上扩展出有建设性的问题,学会程序普通的实现过程还要多想想更简单效率更高的实现方式,这样才能对所学融汇贯通。我也是一名正在学习的学生,写博文一是为巩固自己所学,二是在我初学的道路上,也苦于没有找到对小白特别友好的教程,希望与大家共同成长,共同进步。如果大家对我写的东西有什么建议的话,可以在评论加以点评,第一次用markdown写教程,难免有很多不足之处,见谅…