1、python是什么?
python是动态解释型的强类型定义语言。
python官方版本的解释器是CPython。该解释器使用C语言开发。
当前主要使用3.x版本的python。
2、第一个python程序
>>> print("Hello World!") Hello World!
Linux下使用./xxx.py执行python执行python程序,在文件开头添加如下代码:
#!/usr/bin/env python
3、字符编码
英文编码系统:ASCII,可以表示255个字符
中文编码系统:GB2312(1980,7445个字符)-->GBK1.0(1995,21886个字符,中文Windows默认编码)-->GB18030(2000)
Unicode:万国码,世界统一的一种编码系统
UTF-8:Unicode的子集,对Unicode进行优化
python 3.x版本的默认编码是UTF-8。如需要定义程序文件的编码在开头添加# -*- coding: 字符编码 -*-语句。
e.g:
# -*- coding: utf-8 -*-
4、变量
a = 1
#声明一个变量,变量名a,值为1
定义变量的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
- 变量名最好能让人明了该变量是用来做什么的
5、程序中的注释
# 单行注释 '''多行注释''' or """多行注释"""
6、用户交互
input用来接收用户的输入
e.g:
>>> a = input("请输入:") 请输入:123 >>> print(a) 123
注意:input默认的数据类型为字符型,使用int()可以将其转换为整型
使用type()可以查看变量的数据类型,e.g:
>>> a = "abc" >>> print(type(a)) <class 'str'>
输出小技巧:格式化输出
e.g:
name = "Python" age = 28 print("Name is %s,Age is %s"%(name,age)) #%s字符串 %d 整数 %f 浮点 print("Name is {_name},Age is {_age}".format(_name=name,_age=age)) #结果 Name is Python,Age is 28 Name is Python,Age is 28
小技巧:密文输入
需导入getpass模块,使输入的内容不可见
e.g:
>>> getpass.getpass("请输入密码:") 请输入密码: #看不见我看不见我 'assdfghh'
7、if…else语句
if 条件: #如果 代码块 else: #否则 代码块
if 条件: #如果 代码块 elif 条件: #或者 代码块 else: #否则 代码块
8、while循环
while 条件: 代码块
#continue 跳出本次循环,进入下次循环
#break 结束整个循环
python中while可以搭配else使用,e.g:
a = 5 while a<6: if a/2 == 1: break a += 1 else: print("我就是else!") #结果 我就是else!
9、for循环
e.g:
for i in range(3): print(i) i += 1
#结果
0
1
2for i in range(1,3): print(i) i += 1 #结果 1 2
for i in range(1,5,2): print(i) i += 1 #结果 1 3
for循环中也有continue和break方法
10、python中的模块
Python有非常丰富和强大的标准库和第三方库
import 模块
#程序开头加上该代码,加载某个模块,接下去就可以使用该模块提供的功能
11、python数据类型
数字:int(整型)、float(浮点)、complex(复数)
布尔值:True 、False
字符串:”Python”
12、python数据运算
算术运算
比较运算
赋值运算
按位运算
逻辑运算
成员运算
身份运算
运算优先级
三元运算
e.g:
name = "Python" if 1>0: name = "Python" else: name = "JAVA" print(name) #结果 Python name = "Python" if 1 == 0: name = "Python" else: name = "JAVA" print(name) #结果 JAVA
13、列表
列表是有序的,依靠下标来取值。
>>> name = ["Python","JAVA","C++"] #定义一个列表 >>> name[0] 'Python' >>> name[1] 'JAVA' >>> name[-1] 'C++' >>> name[-2] 'JAVA' #通过列表的下标来取值,下标从0开始,负数下标从列表的最后一个开始计算,从-1开始
切片
>>> name = ["Python","JAVA","C++","C","C#"] >>> name[0:2] ['Python', 'JAVA'] #列表的切片,从下标0取到下标1(结束的位置不包括) >>> name[:2] ['Python', 'JAVA'] #下标为0时可以不写 #注意负数下标 >>> name[-3:] ['C++', 'C', 'C#'] >>> name[-3:-1] ['C++', 'C'] #使用负数下标切片时,仍然从右到左计算,下标-1不写时,取到-1下标的值,写的时候则不包括-1下标的值 >>> name[0:-1:2] ['Python', 'C++'] >>> name[::2] ['Python', 'C++', 'C#'] #同上的负数下标,注意区别,第三个值为步长
追加
>>> name.append("Perl") >>> name ['Python', 'JAVA', 'C++', 'C', 'C#', 'Perl']
插入新值
>>> name.insert(2,"Ruby") >>> name ['Python', 'JAVA', 'Ruby', 'C++', 'C', 'C#', 'Perl'] >>> name.insert(-1,"Lisp") >>> name ['Python', 'JAVA', 'Ruby', 'C++', 'C', 'C#', 'Lisp', 'Perl'] #将新值插入某个值之前
修改
>>> name[2] = "PHP" >>> name ['Python', 'JAVA', 'PHP', 'C++', 'C', 'C#', 'Lisp', 'Perl']
删除
>>> name.remove("PHP") >>> name ['Python', 'JAVA', 'C++', 'C', 'C#', 'Lisp', 'Perl'] >>> del name[5] >>> name ['Python', 'JAVA', 'C++', 'C', 'C#', 'Perl'] >>> name.pop() 'Perl' >>> name ['Python', 'JAVA', 'C++', 'C', 'C#'] >>> name.pop(3) 'C' #pop不加下标时默认删除最后一个值,pop可以返回被删除的值 >>> name ['Python', 'JAVA', 'C++', 'C#']
其他的一些方法
>>> name.index("JAVA") 1 #返回值的下标 >>> name.count("C++") 1 #计数 >>> name ['Python', 'JAVA', 'C++', 'C#'] >>> name.reverse() >>> name ['C#', 'C++', 'JAVA', 'Python'] #翻转整个列表 >>> name ['Python', 'JAVA', 'C++', 'C#'] >>> name.sort() >>> name ['C#', 'C++', 'JAVA', 'Python'] #列表的排序 >>> a = ["a","b","c"] >>> name.extend(a) >>> name ['C#', 'C++', 'JAVA', 'Python', 'a', 'b', 'c'] #合并两个列表 >>> a.clear() >>> a [] #清除整个列表的值 >>> name_copy = name.copy() >>> name_copy ['C#', 'C++', 'JAVA', 'Python', 'a', 'b', 'c'] #复制列表
列表的嵌套
>>> name = ["Python",[1,2,3],"JAVA","C++"] >>> name ['Python', [1, 2, 3], 'JAVA', 'C++'] >>> name[1][2] 3
列表的循环
name = ["Python","JAVA","C++"] for i in name: print(i) #结果 Python JAVA C++
小技巧
name = ["Python","JAVA","C++"] for index,item in enumerate(name): print(index,item) #结果 0 Python 1 JAVA 2 C++
#同时循环列表的下标及值
14、元组
元组是不可修改的列表,也叫只读列表
>>> name = ("Python","JAVA","C++") >>> name ('Python', 'JAVA', 'C++') #创建一个元组
元组只有count与index
>>> name.count("C++") 1 >>> name.index("C++") 2
list(),将元组转换为一个列表
>>> a = list(name) >>> a ['Python', 'JAVA', 'C++']
小技巧,无关元组