(1)Python基础入门:从变量到异常处理

1.运算符

操作符 名称 示例 结果
/ 除法 3 / 4 0.75
// 地板除(取整数部分) 3 // 4 0
<< 左移,移一位效果相等于”乘以2“ 4<<2 16
>> 右移,移一位效果相当于“除以2” 4>>2 1
  • isnot is比较的是内存地址

  • =!=比较的是变量的值

  • 比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等
    价的。

  • 对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的

2.位运算

  • 注意: Python中 bin 一个负数(十进制表示),输出的是它的原码的二进制表示加上个负号,巨坑。
  • 所以为了获得负数(十进制表示)的补码,需要手动将其和十六进制数 0xffffffff 进行按位与操作,再交给 bin() 进行输出,得到的才是负数的补码表示。

3.条件语句

#1 if 
if condition:
    do something
    
#2 if-else
if condition :
    do sth1
else:
    do sth2
    
#3 if-elif-else
if condition1 :
    do sth1
elif sondition2 :
    do sth2
else :
    do sth3
    
    
#4 assert
#assert 断言。当该关键词后边的条件为false时,程序自动崩溃并抛出AssertionError的异常
#通常用来置入检查点,只有条件为True才正常工作

4.循环语句

#1  while
while condition :
    do sth
    
#2  while-else
#  当while语句循环正常结束时,执行else语句。
#  如果while语句中途执行了跳出循环的语句,如break,则不执行else代码块的语句
while condition :
    do sth1
else:
    do sth2
    
#3  for
for 迭代变量 in 可迭代对象:
    do sth
    
#4  for-else
#  当for语句循环正常结束时,执行else语句。
#  如果for语句中途执行了跳出循环的语句,如break,则不执行else代码块的语句
#  与while-else类似
for 迭代变量 in 可迭代对象:
    do sth1
else :
    do sth2
#5  range()



#6  enumerate()
enumerate(sequence, [start=0])
#sequence,一个序列、迭代器或其他可迭代对象
#start:下表起始位置
#返回enumerate(枚举)对象(index,‘对象’)


#7  pass
#不做任何事,但是要占个位置

#8  推导式

#列表推导式
#[ expr for value in collection [if condition] ]
x = [[i, j] for i in range(0, 3) for j in range(0, 3)]
print(x)
# [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]


#元组推导式
#( expr for value in collection [if condition] )
a = (x for x in range(10))
print(a)
#  at 0x0000025BE511CC48>
print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

#字典推导式
#{ key_expr: value_expr for value in collection [if condition] }
b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}


#集合推导式
#{ expr for value in collection [if condition] }
c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}



5.异常处理

#1 try-except
#一个try语句可以跟多个except语句
try :
    监测范围
except Exception[as reson]:
    异常处理
    
try:
f = open('test.txt')
print(f.read())
f.close()
except OSError:
print('打开文件出错')
# 打开文件出错
    
    
#2 try - except - finally
try:
	检测范围
except Exception[as reason]:
	出现异常后的处理代码
finally:
	无论如何都会被执行的代码

    
def divide(x, y):
	try:
		result = x / y
		print("result is", result)
	except ZeroDivisionError:
		print("division by zero!")
	finally:
		print("executing finally clause")

        
divide(2, 1)
# result is 2.0
# executing finally clause
divide(2, 0)
# division by zero!
# executing finally clause
divide("2", "1")
# executing finally clause
# TypeError: unsupported operand type(s) for /: 'str' and 'str'




#3 try - except - else
try:
	检测范围
except:
	出现异常后的处理代码
else:
	如果没有异常执行这块代码

try:
	fh = open("testfile.txt", "w")
	fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
	print("Error: 没有找到文件或读取文件失败")
else:
	print("内容写入文件成功")
    fh.close()
    
# 内容写入文件成功



#4 raise
# raise语句抛出一个指定的异常
try :
    raise NameError('HiThere')
except NameError as er:
    print('An exception flew by!',repr(er))

#An exception flew by! NameError('HiThere')


你可能感兴趣的:(python学习,python)