在开始前先简单和大家说一说:Python是什么.呢?
也许最初设计Python这种语言的人都没有想到今天Python会在工业和科研上获得如此广泛的使用。著名的自由软件作者Eric Raymond在他的文章《如何成为一名黑客》中,将Python列为黑客应当学习的四种编程语言之一,并建议人们从Python开始学习编程。这的确是一个中肯的建议,对于那些从来没有学习过编程或者并非计算机专业的编程学习者而言,Python是最好的选择之一。
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
我之前学过C语言和php,在自己的工作中也经常用php开发一些小项目。这次选这门python的课程,主要是想做一些桌面应用程序。
因为之前有一点编程经验,所以这门课对我来说不难。但我仍然觉得对初学者来说,讲的太快了,知识点讲的太粗糙了,对于真正想学这门课程的同学,我强烈建议配合一本python的书一起学习,不然很难真正学懂。
我自己也在同时看《python基础教程》,把这个笔记也写到这里~~
1.2 万年不变的hello,world和print
print在python3之前的版本中,既可以当做是一个命令,也可以当做是函数来调用。但是在python3以后的版本中,只能以函数的形式来调用。python3+中:
print "hello,world!" ——错误
print("hello,world!")——正确
之前用过php和c语言,以分号做为语句的结束已经成了习惯,在python中则是不需要的。
1.3 算法
算法是什么?用一句话概括:详细描述如何做某件事情。
2个要素:
每一步都是一条计算机能够执行的命令。
执行的顺序。
程序是什么?数据结构+算法。
计算机可以做很多事情,但自己不会思考。所以我们需要操作的对象(数据),决定数据如何存储以及数据之间的关系(数据结构),以及如何处理数据(算法)。
1.4数字和简单运算符
加减乘法没什么太多需要说的。
除法:在python3之前的版本中有一个“陷阱”,当除数和被除数都为整数时,结果也会忽略掉小数部分,必然是一个整数(也就是执行了整除运算):
1 / 3 的结果是0
但是在python3之后,1 / 3 的结果是一个浮点数了,可以正常运算。
整除运算符:// 执行整除运算。
1 // 3 的结果是0
取余运算符 %
是一个非常重要的运算符,在week1课程中的小项目会用到。取余,在一些周期性和循环性的问题中,非常常用。
幂运算符 **
2**3 == 8
1.5-1.6 变量和赋值语句
我之前用php比较多,把php和python中的变量做个比较:
python中的变量必须先赋值(声明)后使用,而php中的变量是不分声明和使用的;
python中变量的本质,是存储了变量的地址,而并非是变量的值。而python中的数据类型是分为可变和不可变2种的(书的这里还有讲到,简单提下),一段非常重要的代码可以说明这个问题:
a = 1
print(id(a))
a = 2
print(id(a))
--------------------------
输出:
505986472
505986488
说明对a进行重新赋值(而非修改)后,变量a在内存中的地址已经被改变。
所以,python中的赋值,是非常非常特殊的,和其他语言有非常大的不同!
python中的赋值,a = b
是传递地址,即对原对象的引用。而改变b的值时a是否受影响,则要看对象是可变还是不可变。
1.7 获取用户输入
在python3以后的版本中,取消raw_input,只有input函数可以使用,返回的是一个字符串。所以就算你输入了一个整数,还是会被当成一个字符串。
如果你要对用户的输入进行运算,就必须要把数据类型转化成数字:
x = int(input("please input your age:"))
print(x**2)
1.8 函数
python中的函数分为3种。
内建函数:
可以直接使用,比如用于数学运算的
pow() 幂函数
round() 四舍五入函数
abs() 绝对值函数
扩展函数:
必须要先导入其所在的模块才能使用,并且用模块名.函数名的形式调用,如
math.floor() 向下取整函数
用户自定义函数:
需要用户自己定义
以一个菜鸟的眼光来看,函数和流程控制是一个程序最核心的东西。
函数可以把一个大的项目分解成若干个独立完成某个具体功能的函数来构成。
优点:
提高开发效率(提高了代码的重用性);
提高可维护性(只需要修改函数中的部分,则被调用的地方都被修改了);
提高代码的可读性和可开发性(对外隐藏功能的实现细节,只需要知道这个函数能完成什么功能即可)。
另外,在python中,可以用变量来引用函数,从而用自定义的变量来完成相同的功能。
mihanshu = pow
mihanshu(2,3)
会输入8
1.9 模块
在使用扩展函数之前,必须先导入其所在的模块,使用import关键字:
import math
math.floor(3.14)
还有另外一种导入模块的方法(本人并不推荐),在你确定只使用一个模块下的一个函数时,可以使用
from math import floor
然后直接使用该函数
floor(3.14)
1.10 执行python程序
如何让python程序像普通的程序(如浏览器等)可以直接双击运行呢?答案是:直接双击就可以了。。(- -!)
为了让控制台不在程序运行完毕后马上关闭,可以在程序最后加上一条
input()
这样在程序运行完后输入任意键程序才会关闭。
注释:
顺便一提,python中使用#来进行注释。
1.11 字符串
python使用+来连接字符串,在php中是用.的
str() 用来把一个对象转成字符串
长字符串:
如果需要输入一个非常长的字符串,跨越多行,就可以使用3个引号来包含这个字符串,并且里面可以随意使用单双引号:""" """
原始字符串:
如果需要字符串中的任何字符都原样输出,就需要在字符串的前面加上一个r
a = r"aaaa bbbbb"
print(a)
学好python你需要一个良好的环境,一个优质的开发交流群,群里都是那种相互帮助的人才是可以的,我有建立一个python学习交流群,在群里我们相互帮助,相互关心,相互分享内容,这样出问题帮助你的人就比较多,群号是301,还有056,最后是051,这样就可以找到大神聚合的群,如果你只愿意别人帮助你,不愿意分享或者帮助别人,那就请不要加了,你把你会的告诉别人这是一种分享。
学习是对自己最好的投资,而机会属于有准备的人,这是一个看脸的时代,但最终拼的是实力。人和人之间的差距不在于智商,而在于如何利用业余时间,所以没有等出来的辉煌,只有干出来的精彩。其实只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间,而你之所以还没有变强,只因你还不够努力,要记得付出不亚于任何人的努力。
你的想法再精彩,那是想法的价值
而你的价值,永远体现在行动之中
如果还停留在想的价值中,请赶快行动,
如果你学习还停止在原处,请咨询我帮助你开始