python入门(上)
- 简介
- 变量,运算符与数据类型
- 注释
- 运算符
- 变量与赋值
- 数据类型转换
- print()函数
- 条件语句
- if语句
- if–else–语句
- if–elif–else–语句
- assert关键词
- 循环语句
- while语句
- while–else–语句
- for语句
- for–else 语句
- range,enumerate函数
- break,continute,pass语句
- 推导式
- 异常处理
一、 简介
python是一种面向对象的编程语言,随着近些年大数据与机器学习的发展,python得到了迅速的发展,希望这篇python入门学习笔记对其他入门者有用。
二、变量,运算符与数据类型
1.注释
单行注释
代码
#这里是注释
print("hello world")
#这里是注释
多行注释
代码
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello python")
# Hello python
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
print("hello python")
# hello python
2. 运算符
2.1算术运算符
操作符 | 名称 | 示例 |
+ | 加 | 1+1 = 2 |
- | 减 | 2-1 = 1 |
* | 乘 | 3*4 = 12 |
/ | 除 | 3/4 = 0.75 |
** | 幂 | 2**3 = 8 |
// | 整除 | 3//4 = 0 |
% | 取余 | 3%4 = 3 |
代码
print(1 + 1) # 2
print(2 - 1) # 1
print(3 * 4) # 12
print(3 / 4) # 0.75
print(3 // 4) # 0
print(3 % 4) # 3
print(2 ** 3) # 8
2.2 比较运算符
操作符 | 名称 | 示例 |
< | 小于 | 1<2 |
<= | 小于等于 | 5<=2 |
> | 大于 | 2>1 |
>= | 大于等于 | 2>=4 |
== | 等于 | 3==4 |
!= | 不等于 | 3!=5 |
代码
print(2 > 1) # True
print(2 >= 4) # False
print(1 < 2) # True
print(5 <= 2) # False
print(3 == 4) # False
print(3 != 5) # True
2.3 逻辑运算符
操作符 | 名称 | 示例 |
and | 与 | (3>2)and(3<5) |
or | 或 | (1>3)or(9<2) |
not | 非 | not(2>1) |
代码
print((3 > 2) and (3 < 5)) # True
print((1 > 3) or (9 < 2)) # False
print(not (2 > 1)) # False
2.4 位运算符
操作符 | 名称 | 示例 |
~ | 按位取反 | ~4 |
& | 按位与 | 4&5 |
| | 按位或 | 4|5 |
^ | 按位异或 | 4^5 |
<< | 左移 | 4<<2 |
>> | 右移 | 4>>2 |
这里 bin()函数可以将十进制转换成二进制
代码
print(bin(4)) # 0b100
print(bin(5)) # 0b101
print(bin(~4), ~4) # -0b101 -5
print(bin(4 & 5), 4 & 5) # 0b100 4
print(bin(4 | 5), 4 | 5) # 0b101 5
print(bin(4 ^ 5), 4 ^ 5) # 0b1 1
print(bin(4 << 2), 4 << 2) # 0b10000 16
print(bin(4 >> 2), 4 >> 2) # 0b1 1
2.5 三元运算符
x, y = 4, 5
small = x if x < y else y
print(small) # 4
2.6 其他运算符
操作符 | 名称 | 示例 |
in | 存在 | 'A’in[‘A’,‘B’,‘C’] |
not in | 不存在 | ‘h’ not in [‘A’,‘B’,‘C’] |
is | 是 | ‘hello’ is 'hello" |
is not | 不是 | ‘hello’ is not ‘hello’ |
letters = ['A', 'B', 'C']
if 'A' in letters:
print('A' + ' exists')
if 'h' not in letters:
print('h' + ' not exists')
# A exists
# h not exists
当比较对象是地址不可变类型的变量时
a = "hello"
b = "hello"
print(a is b, a == b) # True True
print(a is not b, a != b) # False False
当比较对象是地址可变类型的变量时
a = ["hello"]
b = ["hello"]
print(a is b, a == b) # False True
print(a is not b, a != b) # True False
这里is和is not对比的是两个变量的内存地址。
==和!=对比的是两个变量的值
比较对象是地址不可变类型的变量(str,number,tuple),这两种是等价的
比较对象是地址可变类型的变量(list,dict,set),有区别的
3 数据类型及转换
python3中变量可分为六大类型,number,string,list,dictionary,set,tuple,且变量不需要声明数据类型,可以直接赋值。这里只介绍number,string两大类型,其他的数据类型请看python入门(中)。
number类型包括int,float,bool,complex(复数)。
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,
a = 1032
b = 10/3
c = 'hello china'
d = 5+6j
print(d,type(d)) # (5+6j) <class 'complex'>
print(a,type(a)) # 1032 <class 'int'>
print(b,type(b)) # 3.3333333333333335 <class 'float'>
print(c,type(c)) # hello china <class 'str'>
bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。
print(False+False) # 0
print(True+False) # 1
print(True+True) # 2
print(False == 0, False is 0) # True False
print(True == 1 , True is 1) # True False
三、条件语句
1.if语句
i = 103
j = 12
if i>100 and j<20:
print(i+j) #115
2.if–else–语句
i = 103
if i>100 :
print("玩会游戏吧")
else:
print("快去学习")
3.if–elif–else–语句
temp = input("请输入您的年龄:")
age = int(temp)
if age<18:
print("小朋友,你好")
elif age>=18 and age<40:
print("先生/女士,您好")
else:
print("叔叔/阿姨,您好")
# 请输入您的年龄:23
# 先生/女士,您好
四、循环语句
1.while循环
alpha = [1,2,3,4,5,6,7,8,9,10]
while(len(alpha)!=0):
print(alpha.pop(), end=" ")
#10 9 8 7 6 5 4 3 2 1
2.while–else–循环
count = 0
while count < 5:
print("%d is less than 5" % count)
count = count + 1
else:
print("%d is not less than 5" % count)
# 0 is less than 5
# 1 is less than 5
# 2 is less than 5
# 3 is less than 5
# 4 is less than 5
# 5 is not less than 5
3.for循环
九九乘法表
for i in range(1,10):
for j in range(1, i+1):
print("%d*%d=%d" % (j, i, i*j), end=" ")
print()
# 1*1=1
# 1*2=2 2*2=4
# 1*3=3 2*3=6 3*3=9
# 1*4=4 2*4=8 3*4=12 4*4=16
# 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
# 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
# 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
# 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
# 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
4.for–else–循环
for num in range(10, 20): # 迭代 10 到 20 之间的数字
for i in range(2, num): # 根据因子迭代
if num % i == 0: # 确定第一个因子
j = num / i # 计算第二个因子
print('%d 等于 %d * %d' % (num, i, j))
break # 跳出当前循环
else: # 循环的 else 部分
print(num, '是一个质数')
# 10 等于 2 * 5
# 11 是一个质数
# 12 等于 2 * 6
# 13 是一个质数
# 14 等于 2 * 7
# 15 等于 3 * 5
# 16 等于 2 * 8
# 17 是一个质数
# 18 等于 2 * 9
# 19 是一个质数
enumerate 枚举函数
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
lst = list(enumerate(seasons, start=1)) # 下标从 1 开始
print(lst)
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
5.推导式
x = [i ** 2 for i in range(1, 10)]
print(x)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]
五、异常处理
1.try-except语句
try:
##检测范围
f = open('test.txt')
print(f.read())
f.close()
except OSError:
##出现异常后的处理代码
print('打开文件出错')
# 打开文件出错
2.try-except-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
3.try-except-else语句
try:
fh = open("testfile.txt", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print("Error: 没有找到文件或读取文件失败")
else:
#如果代码没有问题,执行下面的代码
print("内容写入文件成功")
fh.close()
# 内容写入文件成功