1. 注释和续行符
python
使用#
开始注释 和Linux
的一样- 如果一行语句很长 要分成多行 则需要使用
\
在每行最后续行 - 当多行之间有括号等连接时 则不需要使用续行符
python
使用换行结束一条语句- 同一行要写多个语句 则使用
;
分隔即可
1. 判断语句
- 语句格式
if exp:
syntax0
elif:
syntax1
if exp1:
syntax3
else:
syntax4
else:
syntax5
- 注意判断表达式没用括号括起来 遵循续行符规则
- 判断表达式最后无论
if
还是else
都必须要有:
结束 elif
就是else if
同等缩进为同一条件结构 嵌套条件也是缩进实现
1. 语句块
- 增加缩进表示增加语句块
- 同级语句块 有相同缩进数量
- 减少缩进 表示语句块的退出
1. 输入输出
-
输出
-
使用
print("exp")
或者print(var)
输出字符串或者变量 -
print(var1,var2...)
-
格式化输出 类似与
C
中的printf
但有两种方式 根据%
隔开 或者用{[参数序号:参数格式]}+format
输出Int: str='python' x=len(str) print('the length of %s is %d' %(str,x)) Out: the length of python is 6 Int: str='python' x=len(str) print('the length of %s is %d' %(str,x),end='--') Out: the length of python is 6-- #不带换行符 >>> pi = 3.141592653 >>> print('%10.3f' % pi) #字段宽10,精度3 3.142 >>> print("pi = %.*f" % (3,pi)) #用*从后面的元组中读取字段宽度或精度 pi = 3.142 >>> print('%010.3f' % pi) #用0填充空白 000003.142 >>> print('%-10.3f' % pi) #左对齐 3.142 >>> print('%+f' % pi) #显示正负号 +3.141593 Int: a = 'hello' b = 10 c = 1.23 d = 2.34567 print('{} 和 {} 两人去找{:f}家里找 {:.3f} 玩'.format(a, b, c, d)) Out: hello 和 10 两人去找1.230000家里找 2.346 玩
-
-
输入
- 使用
x=input()
或者带提示的输入x=input('enter a string')
input()
函数返回值默认为字符串- 使用
x=int(intput())
或者带提示的输入x=int(input('enter a num'))
更改输入为整型 依次类推
- 使用
1. 安装包
pip install 包名
1. 运算符
- 算术运算符
- 乘方
**
- 整除
//
- 其余和
Java
的一样
- 乘方
- 位运算符 和
Java
区别不大 - 比较运算符
- 和
Java
区别不大 - 支持连续比较 更人性化 如
3<4<7 4<6==7
- 和
- 逻辑运算符 和
jstl
的类似 用英文单词not and or
1. 变量
python
是动态的强类型语言- 变量第一次赋值 同时获得值和类型。不要显示指定类型
- 以
引用
的方式实现赋值 指向值所在的内存单元- 支持增量赋值
X+=5
- 支持链式赋值
X=x=6
python
区分大小写 - 支持多重赋值 等号两边以元组的方式出现
(x,y)=(1,2)
x,y=y,x
- 支持增量赋值
- 作用域
- 全局变量
- 在主函数主体的变量是全局变量
- 在自定义函数中 若用
global
关键字修饰的变量 也是全局变量
- 局部变量
- 在自定义函数和循环语句中有局部变量
- 全局变量和局部变量同名时 局部变量可见。若要让全局变量可见 则用
global
关键字
- 全局变量
- 数据类型(
type(var/exp)
会显示类型)- (长)整型(区分不大)
- 范围:(几乎不会溢出)
- 32位机器:
-2^31~2^31-1
- 64位机器:
-2^63~2^63-1
- 浮点型
- 复数型
complex
虚数部分必须有j
a+bj
- 分离实数和虚数部分
.real
.imag
.conjugate()
获得原复数的共轭复数
- 布尔型
True
False
- 本质存1 0
- 字符串
'str'
"str"
'''str'''
由三个单引号构成的三引号,里面可以使用单双引号,而且多行时,不需要续行符
- 列表
- 强大的类型 用方括号
[]
界别 属于可变类型
- 强大的类型 用方括号
- 元组
- 与列表类似 用小括号
()
界别 属于不可变类型
- 与列表类似 用小括号
- 字典
- (长)整型(区分不大)
1. 函数
-
内建函数
-
无需导入可直接使用 比如
help
round
range(var,[...])
-
使用
dir(__builtins__)
查看所有内建函数以及常量 使用help(函数名)
查看某个函数的帮助 -
range(start,end,step) range(start,end) range(end)
后两者则默认步长是1 返回值是list
对象[外链图片转存失败(img-q8rnBu24-1569199919845)(/home/yang/Desktop/%E6%B7%B1%E5%BA%A6%E5%BD%95%E5%B1%8F_%E9%80%89%E6%8B%A9%E5%8C%BA%E5%9F%9F_20190919160032.gif)]
-
-
实用函数
- 需要导入才可以使用
- 导入模块或者函数本身
- 模块是一个完整的
python
文件 模块是对应与.py
的物理组织方式 下的逻辑上的组织方式 python
使用import 模块
- 导入多个模块
import name1,name2,...
- 导入模块中指定的属性
from Module1 import ModuleElement
- 模块是一个完整的
- 导入包(有层次的文件目录结构)
- 导入
import AAA.BBB.CCC.c1
使用AAA.BBB.CCC.c1.func1()
- 导入
from AAA.BBB.CCC.c1 import func1
使用func1()
- 导入
- 库
- 是一组具有相关功能的模块集合
python
的一大特色 是具有强大的标准库 第三方库 自定义模块
-
自定义函数
-
基础语法
def function_name([args]): 'optional doc string' function_body
-
例子
def add2(x): 'apply operation + to arg' return x+x add2(3) -----6 from math import sqrt def isprime(x): if x==1: return False k=int(sqrt(x)) for j in range(2,k+1): if x%j==0: return False return True for i in range(2,101): if isprime(i): print(i,end=' ') -----2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
-
-
默认参数
-
函数参数可以有默认值 以赋值语句的形式提供
def f(x=True): if x: print('word') print('Ok') f() ------word Ok f(False) ------Ok
-
默认参数的值可以改变 在函数调用的时候(如果需要的话 一般提供了则不需要)
-
默认参数一般要放在参数列表的最后 防止引起歧义
-
-
关键字参数
-
就是函数调用传参数的时候 使用
f(形参名字=value,...)
指明每个参数传入的值 -
关键字参数让开发者可以使用参数名区分参数,并且可以改变参数顺序
-
使用了关键字参数 则所有参数赋值都要用关键字参数 不允许部分
#如上述质数函数调用 isprime(6)改成 isprime(x=6)
-
-
传递参数
-
把函数当做参数
def add2(x): 'apply operation + to arg' return x+x def self(f,y): print(f(y)) self(add2,4) ------8
-
-
lambda
函数-
匿名函数的一种 和
c++ java
的类似 -
定义
function_name = args : function_body r=lambda x:x+x r(8) -----16
-
-
返回值
- 返回类型为
none
则返回对象个数是0 - 返回类型为
Object
则返回对象个数是1 - 返回类型是
tuple 元组
则返回对象个数是>1 和Java
那些很不一样
- 返回类型为
-
1. 循环
-
while
循环 结合if
结构比较容易理解In:sumA=0 j=1 while j<10: sumA+=j j+=1 sumA Out: 45
-
for
循环-
语法:
for iter_var in iterable_Object: suite_to_repeat # iterable_Object包括String List Tuple Dictionary File # 用于遍历一个数据集内的成员 In:s='python' for c in s: print(c,end='') print() #输出一个换行符 for i in range(3,11,2): print(i,end=' ') Out: python 3 5 7 9 # 在列表解析式中使用 返回一个列表 用[]括起来 [i for i in range(10)] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [i+1 for i in range(10) if i%2==0] [1, 3, 5, 7, 9] # 在生成器表达式中使用 返回一个生成器 用()括起来 其他和在列表解析式中使用一致
-
-
结合
Java
使用break
和continue
也差不多-
python
中else
可以while
循环一起使用 特殊-
表示 如果循环从
break
处终止 跳出循环 -
如果正常结束循环 则执行
else
中的代码Int: from math import sqrt num=int(input('please enter a number:')) j=2 while j<=int(sqrt(num)): if num %j==0: print('{:d} is not a prime'.format(num)) break j+=1 else: print('{:d} is a prime'.format(num)) Out: please enter a number:26 26 is not a prime
-
-
-
和递归
def fib1(x): a,b=0,1 count=1 while(count<x): a,b=b,a+b count+=1 return a def fib2(x): if x==0 or x==1: return x else: return fib2(x-1)+fib2(x-2) def hanoi(a,b,c,n): if n==1: print(a,'->',c) else: hanoi(a,c,b,n-1) print(a,'->',c) hanoi(b,a,c,n-1)