python day1学习

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崇尚优美,清晰,简单的哲学,是一个优秀并广泛使用的语言。
img

由上图看,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写教程,难免有很多不足之处,见谅…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值