文章目录
一 . python解释器
二. 基础语法
基本名词
- 注释
# 单行注释
'''
多行注释
多行注释
'''
"""
多行注释
多行注释
"""
- 可以使用
\
将一行语句分为多行显示。如下所示:
a = 128
b = 1024
c = 512
d = a + \
b - \
c
如果包含在 []、{}、()
括号中,则不需要使用 \
- 数字
整数int
浮点数float
复数complex: 1+2j 或 1+2J
字符串
三引号可以支持单引号,双引号,特殊字符
等
r
前缀不做任何处理
f
前缀,格式化字符3.6增加
\
转义
r
做前缀不会转移任何字符
续行:在行末使用\
,如果有花括号则不支持\
缩进:4个空格
标识符
只能用字目,下划线,数字,
不能是关键字(def,class)
不允许使用中文,不能用_
开头,
python无法
定义常量
字面常量:单独的量:12,”abc“,”dafsad“
变量:
a = 100 变量定义
b='nice' #赋值及定义
动态
语言:不用事先声明,随时可以赋值为其它类型
强类型
语言:两个类型放在一起(不可以),需要强制类型转换
不支持print(‘a’+1)
会出错
运算符
算数运算符:+ , - , * , % , **
//
强行取整数:1//2=0
,-5//2=-3
位运算符
& 位于,
| 位或
^异或
<<a左移a位 相当于2^a
>>a右移a位 相当于2^(1/a)
32//4 相当于32>>2
~按位取反,包括符号位
bin(12)
将其化为2进制
str(1)
以字符串方式输出
按位取反
源码,反码,补码,负数
比较运算符:返回bool值
== , !=,>,>=,<,<=
逻辑运算符
与and,或or,非not
赋值运算符
a=min(3,6) #结果为3
+=,-=,*=,/=,%=,//=
a=y=z=80
10 > b and b > 3
成员运算符
in,not in
身份运算符
is,is not
运算符优先级
单目运算符 > 双目运算符
算数运算符 > 位运算符 > 比较运算符 > 逻辑运算符
-3+2>5 and 'a' > 'b'
表达式
由数字,符号,括号,变量等的组合
三. 内建函数
print(value,...,sep='',end='\n')
sep
字符之间分隔符
end
默认换行符
数值型
int,float,complex,bool都是class,1,5.0,2+3j都是对象(实例)
int:长整型(python3)
float:浮点数
complex:由实数和虚数组成,都是浮点数
bool:int的子类,有True,False和1,0
类型转换
int(x)返回一个整数—只取"小数点前面的
"没有进位
float返回一个浮点数
complex(x),complex(x,y)返回一个复数
bool(x)返回一个布尔值
整除
rond()
四舍六入五取偶
math.floor()
向下取整,需要导入math
包5/2=2
math.ceil()
向上取整,l5/2=3
int()
只取整数部分
//
整除且向下取整
常用的数值函数
min(),max()
pow(x,y) 等于 x**y
math,sqrt(x) 等于 x**0.5
进制函数,返回的是字符串
bin(), oct(),hex()
math模块
math.pi
相当于∏
math.e
自如常数
math
模块中还有对数函数,三角函数等
四. 内存管理机制GC
变量无需事先声明,也不需要指定类型(动态语言的特性
)
无需关心变量的内存管理
python使用引用计数记录所有的对象的引用数
当对象引用数变为0
,就会被垃圾回收GC
—garbage collection
技术增加
:复制给其他变量就会增加引用技术,例如x=3;y=x
(也就是y指向了x所指)
计数减少
:函数运行时,局部变量就会自动被销毁,例如:x=3;y=x;x=4
五. 程序控制(if,for,while)
顺序:按顺序执行
分支:条件满足执行条件下的与
循环:重复
分支结构
if 判断
记住每一个if,elif,else后面都有一个冒号 :
if 1<2:
print('1 less than 2')
多分支结构
if 3>1:
print("正确")
elif 1==3:
print("错误1")
else:
print("错误2")
分支嵌套
source = 10
if source < 0:
print("wrong")
else:
if source == 0:
print ('egg')
elif source <= 100:
print('right')
else:
print('too big')
输入函数:input()
输入两个数字比较大小
a = int(input('please input a number a: '))
b = int(input('please input a number b: '))
if a > b:
print("a")
else:
print("b")
pass
(空操作的占位语句)
if 1>2:
pass
else:
print("nice")
while 循环
while循环:之后有一个“冒号:
”
a=10
while a:
print(a)
a-=1
while Ture:
print(input("please input a number"))
for循环
for循环
元素 可迭代的
for element in iteratable:
block
range函数:计数(从小到大
)相当于shell中的seq
for i in range(10):
print(i+1)
continue 中断本次循环–继续下一循环
continue语句:中断当前循环的执行,继续下一次循环
输出偶数
for i in range(10):
#为0--false,取反
if not i%2:
print(i)
#打印10的倍数
for i in range(1,100):
if not i%10:
print(i)
continue
计算10以内的偶数
for i in range(0,10,2):
print(i)
#用二进制的 与 关系
for i in range(0,10):
if i & 1:
continue
print(i)
break
结束当前循环
#计算1000能被7整除的前20个数
count=0
for i in range(7,1000,7):
print(i)
count +=1
if count >=20:
break
小技巧
print(value,...,sep='',end='\n')
sep
字符之间分隔符
end
默认换行符
bin(12)
将其化为2进制str(1)
以字符串方式输出- 再ipython
下划线
算一个变量 pass
(空操作的占位语句)- range函数:计数(
从小到大
)相当于shell中的seq
常与for连用
range
range(10) #相当于(0.10,-i),0<=i<10
前包后不包
range(1.10) 相当于range(1,10,1)
range(10,1,-1)反向走
- help()查询帮助
可以一用函数?
help(range) #查询range函数的帮助
range?
type(a)
判断类型
type(1)
type(a)
type(bin(10)) == str
type(123) == int
练习
练习:将一个数从从个位,十位,百位输出
a=int(input("please input a number a="))
if a > 10000:
print("输入错误")
elif a>1000:
num=4
elif a>100:
num=3
elif a>10:
num=2
else:
num=1
for i in range(num):
n=a//10
print(a-n*10)
a=n
输出一个正方行
n=int(input("please input a number a="))
print('* '*n)
for i in range(n-2):
print('*',' '*(n-2),'*')
print('* '*n)
计算100以内所有奇数的和
count=0
for i in range(100):
if i%2:
count+=i
print(count)
给学生成绩评级
n=int(input("please input a number a="))
if n >=90:
print("A")
elif n>80:
print("B")
elif n>70:
print("C")
elif n>60:
print("D")
else:
print("loser")