一、导学
python 3.6
1.Pythonic 简洁 自然
如何交换两个变量
其他语言:
temp = x
x = y
y = temp
python:
x,y = y,x
2.python能做哪些东西
爬虫、自动化运维和自动化测试、大数据、Web开发(Flask/Django)、AI、脚本处理、机器学习(Tensor Flow)等等
胶水语言:混合其他如C++、Java等来编程、能够把其他语言制作的各种模块(尤其是C/C++)很轻松的联结在一起
万金油语言
3.Python之禅
简洁胜于复杂
做也许好过不做,但不假思索就动手还不如不做
4.Python的特点
1)是一门编程语言 Java,PHP,R,C++
2)语法简洁、优雅、编写的程序容易阅读
life is short i use python
3)跨平台的语言,可运行在win、Linux以及MacOS
4)易于学习,相比较C++、Java、JavaScript
5)强大丰富的标准库与第三方库,比如电子邮件、图形GUI界面
6)面向对象的语言
7)易于上手难于精通
5.Python的缺点
比较C++、Java,运行起来较慢
运行效率和开发效率,不可兼得
编译型语言 C,C++
解释型语言 JavaScript、Python
Java和C#不好归类
6.Web编程的基础很重要,是最好的语言学习实践
7.课程特点
1)基础语法很重要
2)Python高性能与优化 性能高又易于理解
3)数据结构才是基础,通用,与语言无关
二、Python安装
注意看官方文档
三、Python的基本类型
1.数字
整数:int 没有short,int,long
浮点数:float 精度=其他语言的double
其他语言:单精度(float)、双精度(double)
>>> type(1)
>>> type(1.11111111111)
>>> type(-1)
>>> 1+2.1111
3.1111
>>> type(1+1.111)
>>> type(1+1.0)
>>> 1+1.0
2.0
>>> type(1*1.0)
>>> type(2/2)
>>> type(2//2)
>>> 2//2
1
>>> 2//1.5
1.0
2.各进制的表示和转换
0b表示二进制
二进制的10表示为0b10
0o表示八进制
八进制的8表示为0o10
0x表示十六进制
十六进制的16表示为0x10
>>> 0b10
2
>>> 0b11
3
>>> 0x10
16
>>> 0o10
8
十进制转换为二进制
bin(10)
八进制转换为二进制
bin(0o7)
十六进制转换为二进制
bin(0xE)
其他进制转换为十进制
int(0b111)
其他进制转换为十六进制
hex(888)
其他进制转八进制
oct(0b111)
3.bool类型和复数
bool类型:表示真、假 可以和其他数据类型相互转换,非0(或非空)的都是True,0(或空)则是False
complex:复数
>>> True
True
>>> type(False)
>>> type(True)
>>> int(False)
0
>>> int(True)
1
>>> bool(0)
False
>>> bool(1)
True
>>> bool(2.2)
True
>>> bool(-1.1)
True
>>> bool('abc')
True
>>> bool('')
False
>>> bool([1,2,3])
True
>>> bool([])
False
>>> bool([])
False
>>> bool({1,2,3})
True
>>> bool({})
False
4.单引号与双引号
复数
>>> 36j
36j
字符串
可用单引号、双引号、三引号来表示字符串
>>> 'hello world'
'hello world'
>>> "hello world"
'hello world'
>>> '''hello world'''
'hello world'
>>> '1'
'1'
>>> type('1')
>>> type(1)
为什么要区分单引号和双引号?
引号里需要显示引号时,引号表示字符串时,必须要成对出现
>>> 'let's go'
SyntaxError: invalid syntax
>>> "let's go"
"let's go"
>>> 'let"s go'
'let"s go'
另外一种表示引号内引号的方法——转义字符
>>> 'let\'s go'
"let's go"
5.多行字符串——三引号
>>> '''
let's go
pika,pika
'''
"\nlet's go\npika,pika\n"
>>> """
hello world
pika,pika
"""
'\nhello world\npika,pika\n'
\n表示回车
'hello\nworld'
>>> """hello\nworld"""
'hello\nworld'
>>> """hello\\nworld"""
'hello\\nworld'
>>> print("""hello\nworld""")
hello
world
>>> print('hello\nworld')
hello
world
>>> print("hello\nworld")
hello
world
6.转义字符
\n 换行 (注意不同于\r回车)
\' 单引号
\t 横向制表符
>>> print('hello\nworld')
hello
world
>>> print('hello \\n world')
hello \n world
7.原始字符串
当文件路径中,出现了\north\northwork这种情况,其实是路径名为north,但计算机会把\n理解为换行,为了防止这种情况,可以写为\\north\\northwork或者使用原始字符串,在字符串前加r或R
>>> 'c:\zouhan\work'
'c:\\zouhan\\work'
>>> print('c:\zouhan\work')
c:\zouhan\work
>>> print('c:\north\northwork')
c:
orth
orthwork
>>> print('c:\\north\\northwork')
c:\north\northwork
>>> print(r'c:\north\northwork')
c:\north\northwork
>>> print(R'c:\north\northwork')
c:\north\northwork
但是,以下这种情况不可以,因为r后边的内容,计算机认为是错误的语法,不会按照原始字符串来读
>>> print(r'let's go')
SyntaxError: invalid syntax
8.字符串运算
>>> 'hello'+'world'
'helloworld'
>>> 'hello'*3
'hellohellohello'
>>> 'hello '*3
'hello hello hello '
>>> 'hello'*'world'
Traceback (most recent call last):
File "", line 1, in
'hello'*'world'
TypeError: can't multiply sequence by non-int of type 'str'
字符串*字符串不可行
>>> 'hello world'[0]
'h'
>>> 'hello world'[5]
' '
>>> 'hello world'[-3]
'r'
>>> 'hello world'[2:5]
'llo'
>>> 'hello world'[0:5]
'hello'
>>> 'hello world'[0:-3]
'hello wo'
>>> 'hello world'[-1:-3]
''
>>> 'hello world'[-3:-1]
'rl'
>>> 'hello world'[6:11]
'world'
>>> 'hello world'[6:15]
'world'
>>> 'hello world'[6:]
'world'
>>> 'hello world'[-5:]
'world'
>>> 'hello world'[:-5]
'hello '
中括号中的数字代表的是字符的位置
正着数从0开始,倒着数从-1开始,截取字符串中的某一部分有多种方法
有意思的是:假设整个字符串只有10个字符,输入[0:20]也不会报错,自动截取到整个字符串的最后一位