原教程是廖雪峰的:Python教程-廖雪峰的官方网站
<https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000>

<>Python简介

* Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
* Python是一种相当高级的语言。
* 代码少的代价是运行速度慢。
*
用Python可以做什么?可以做日常任务,比如自动备份你的MP3;可以做网站,很多著名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。总之就是能干很多很多事啦。
*
Python当然也有不能干的事情,比如写操作系统,这个只能用C语言写;写手机应用,只能用Swift/Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。
* Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries
included)”。
*
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
*
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
<>第一个Python程序

命令行模式提示符类似C:\>

Python交互模式提示符是>>>

输入exit()并回车退出Python交互模式

在Python交互式模式下,可以直接输入代码,然后执行,并立刻得到结果。

在命令行模式下,可以直接运行.py文件。

<>使用文本编辑器

直接输入python进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。

直接运行.py文件相当于启动了Python解释器,然后一次性把.py文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- print('Hello, world')
<>输入和输出

print()会依次打印每个字符串,遇到逗号“,”会输出一个空格
name = input() name = input('please enter your name: ') print('hello,', name)
<>Python基础

以#开头的语句是注释
当语句以冒号:结尾时,缩进的语句视为代码块。
# print absolute value of an integer: a = 100 if a >= 0: print(a) else:
print(-a)
当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。
Python程序是大小写敏感的
坚持使用4个空格的缩进
在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。

<>数据类型和变量

如果字符串内部既包含’又包含"怎么办?可以用转义字符\来标识,比如:
'I\'m \"OK\"!'
Python还允许用r''表示''内部的字符串默认不转义
>>> print(r'\\\t\\') \\\t\\
Python允许用'''...'''的格式表示多行内容
>>> print('''line1 ... line2 ... line3''') line1 line2 line3
如果写成程序并存为.py文件,就是:
print('''line1 line2 line3''')
可以直接用True、False表示布尔值(请注意大小写)
布尔值可以用and、or和not运算。

空值用None表示

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言

可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据

在Python中,通常用全部大写的变量名表示常量

在Python中,有两种除法,一种除法是/:
>>> 10 / 3 3.3333333333333335
/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
>>> 9 / 3 3.0
还有一种除法是//,称为地板除,两个整数的除法仍然是整数:
>>> 10 // 3 3
Python的整数没有大小限制.
Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

<>字符串和编码

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件



对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
>>> ord('A') 65 >>> ord('中') 20013 >>> chr(66) 'B' >>> chr(25991) '文'
要注意区分’ABC’和b’ABC’,前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

以Unicode表示的str通过encode()方法可以编码为指定的bytes

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法

如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore') '中'
len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数
>>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' %
('Michael', 1000000) 'Hi, Michael, you have $1000000.'
用%%来表示一个%

<>使用list和tuple

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素(真是太骚了:
>>> classmates[-1] 'Tracy'
以此类推,可以获取倒数第2个、倒数第3个:
>>> classmates[-2] 'Bob' >>> classmates[-3] 'Michael' >>>
classmates.append('Adam') >>> classmates.insert(1, 'Jack') >>> classmates.pop(1)
插播一句,c++中vector的删除:vec.erase(vec.begin() + 1); 尾部加入:vec.push_back(6);

list里面的元素的数据类型也可以不同,比如:
>>> L = ['Apple', 123, True]
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
>>> classmates = ('Michael', 'Bob', 'Tracy')

现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
>>> t = (1,) >>> t (1,)

tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

<>条件判断
if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4>
input()返回的数据类型是str

<>循环
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
>>> list(range(5)) [0, 1, 2, 3, 4]
<>使用dict和set
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
如果key不存在,dict就会报错
要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
>>> 'Thomas' in d False
二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas') >>> d.get('Thomas', -1) -1
注意:返回None的时候Python的交互环境不显示结果。

要删除一个key,用pop(key)方法,对应的value也会从dict中删除
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的
dict的key必须是不可变对象。

set和dict的唯一区别仅在于没有存储对应的value
>>> s = set([1, 2, 3]) >>> s {1, 2, 3}
显示的顺序也不表示set是有序的。。
重复元素在set中自动被过滤
通过add(key)方法可以添加元素到set中
通过remove(key)方法可以删除元素

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信