萌新编程笔记之Python入门
跟着 廖雪峰 老师愉快地学Python啦!姆们廖老师说了:完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行,所以Python是一种相当高级的语言。
Python是什么?
Python 是用来编写应用程序的高级编程语言,定位是优雅、明确、简单。相对来说,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。
Python的优势
- 非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作 “内置电池”(batteries included)
- 大量的第三方库;
- 许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣
Python的缺点
- 运行速度慢,因为Python是解释型语言,而C语言是编译型语言
- 代码不能加密
安装Python
安装后,你会得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。
Python解释器
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。
- CPython:在命令行下运行
python即启动; - IPython:交互式解释器;CPython用
>>>作为提示符,而IPython用In [序号]:作为提示符。 - Jython:在Java平台运行
- IronPython:在微软.Net上运行
第一个Python程序
命令行模式和Python交互模式
- 在Windows下的提示符:
C:\> - 在Python下的提示符:
>>> - 在Python交互模式下输入
exit()并回车,就退出了Python交互模式,并回到命令行模式
让Python算数儿打字啦!
1 | 100+200 |
区分命令行模式和Python交互模式
- 在Python交互式模式下,可以直接输入代码,然后执行,并立刻得到结果;
1 | 在Python交互模式内计算 100+200+300 |
- 在命令行模式下,可以直接运行
.py文件。
1 | testing.py文件中代码 |
在Mac上直接运行 .py 文件
首先在 .py 文件的第一行要加个特殊注释
1 | #!/usr/bin/env python3 |
之后通过命令给 hello.py 权限
1 | $ chmod a+x hello.py |
然后直接运行~
1 | $ ./hello.py |
输入和输出
输出
print() 函数可以向屏幕输出文字、多个字符串、计算结果等。
1 | print("hello, world") |
输入
input() 函数可以让用户输入字符串,并且存放到一个变量里。
1 | name = input() |
关于变量
在计算机程序中,变量可以是数字也可以是字符串,在上面的 name 就是一个字符串。
1 | name = input('please enter your name: ') |
运行上面的程序,第一行代码会让你输入任意字符作为自己的名字,然后存入 name 变量中;第二行代码会根据你的名字向你说hello,比如输入Maimi:
Python基础
语法
缩进方式,四个空格,# 为注释,: 结尾代表代码块,大小写敏感!
1 | # print absolute value of an integer: |
Tips:更改Sublime中Tab的空格数,在setting中输入:
1 | "tab_size": 4, |
数据类型和变量
数据类型
Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”。
整数:正负皆可,有时用十六进制表示整数比较方便,前缀为
0x浮点数:正常的浮点数就直接写
1.23;很大或者很小的浮点数需要用科学计数法,将10用e代替,如1.23x10的九次方写作1.23e9;浮点数没有大小限制,但超出了一定范围就会直接表示为inf。字符串:以单引号或双引号括起来的任意文本,引号不属于字符串的一部分。语句内部如果想用引号,则需要用转义字符
\来表示。1
2print('I\'m \"OK\"!')
'I'm "OK"!'\可以转义很多字符,比如\n表示换行,\t表示制表符,\\表示的字符就是\,如:1
2
3
4
5
6
7
8print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\可以用
r''表示''内部的字符默认不转义:1
2print(r'\\\t\\')
\\\t\\'''...'''表示多行内容:1
2
3print('''First line
second line
third line''')布尔值:
True&False,Python可以自己判断数字运算正确与错误,布尔值可以用and,or,not来运算。and是与运算,所有都对才能算True;or是或运算,只要一个对,结果就是True;not是非运算,比如你说not 1>2那么判定则为True布尔值经常用在条件判断中,比如:
1
2
3
4if age >= 18:
print('adult')
else:
print('teenager')空值:用
none表示,不能理解为0。
变量
变量不仅可以是数字,还可以是任意数据类型。变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,等号 = 是赋值语句,同一个变量可以反复赋值。变量本身类型不固定的语言叫做 “动态语言” 。
1 | x = 10 |
变量在计算机内存中的表示:
1 | a = 'ABC' |
Python先在内存中创建了'ABC'的字符串,然后在内存中创建了一个名为 a 的变量,并把它指向了 'ABC'。
再来一个一分析就懂的例子:
1 | a = 'ABC' #创建字符串'ABC'和变量a,并把a指向了'ABC' |
常量
在Python中,通常用全部大写的变量名表示常量:
1 | PI = 3.14159265359 |
两种除法
精确的/ :浮点数,精确!
1 | 10 / 3 |
取整的// :地板除,结果永远是整数,管你除不除得尽
1 | 10 // 3 |
字符编码和字符串
- 字符编码
最早的计算机设计采用 8 bit = 1 byte 的算法,也就是8个比特作为一个字节,所以一个字节能表示的最大整数就是255(二进制的11111111=十进制的255)
美国人最早只编了127个字符,包括大小写英文字母、数字和一些符号,这个编码表叫 ASCII 编码,比如 A 的编码是 65,小写 z 的编码是 122。中国发现这中文一个字节不够用,于是就制定了 GB2312 编码,把中文编进去了。各国发现自己都不够编啊,于是各自编了各自的语言,就乱套了!
就在这时候,Unicode 出现了!2个字节=1个字符,偏僻字是4个字节=1个字符。