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()

# 内容写入文件成功