(二) python---基本语法(最基础),内存管理GC,if、for,range,help,type

一 . 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

print(value,...,sep='',end='\n'

sep字符之间分隔符
end默认换行符

  1. bin(12) 将其化为2进制
  2. str(1) 以字符串方式输出
  3. ipython下划线算一个变量
  4. pass(空操作的占位语句)
  5. range函数:计数(从小到大)相当于shell中的seq 常与for连用

range

range(10) #相当于(0.10,-i),0<=i<10前包后不包
在这里插入图片描述

range(1.10) 相当于range(1,10,1)  
range(10,1,-1)反向走
  1. help()查询帮助
    可以一用函数?
help(range)  #查询range函数的帮助

range?
  1. 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")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值