当前位置:首页 > 编程语言 > 正文

Python基础

11-19 编程语言

标签:string   字符串类   python   数字类型   input   垃圾回收机制   class   循环   tin   

一、执行Python程序的两种方式

1 交互式

在终端内输入python3,然后输入python代码

2 命令行式

在终端内输入python3 文本文件路径

二、变量

1、变量的组成

变量名 = 变量值

name = nick
age = 19

变量名是用来接收变量值的

2、变量名的定义规范

  1. 变量名具有某种意义
  2. 由数字/字母/下划线组成,且不能由数字开头,(也不能由下划线开头)
  3. 不能用Python关键字
[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

3、定义变量的两种方式

  • 驼峰体:NameOfNick
  • 下划线:name_of_nick(推荐)

4、常量

常量是约定俗成的一种规范,常量名的定义方式为全大写。实际上可以被修改。

AGE_OF_NICK = 19
print(AGE_OF_NICK)

三、Python变量内存管理

1、引用计数

变量值的引用次数

x = 257  # 257的引用计数为1
y = x   # 257的引用计数为2
del x  # 257的引用计数为1

2、垃圾回收机制

当变量值的引用计数为0的时候,该变量值会被Python自动回收它的内存占用

3、小整数池

[-5,256]之间的整数会在Python解释器启动的时候,自动开辟一块内存存入这些整数.也就是说这些整数不会因为引用计数为0而被删除。

4、内存地址与数据类型

x = 10
print(x)  # 获取变量的变量值
print(id(x))  # 获取变量的id,可以理解成变量在内存中的地址
print(type(x))  # 获取变量的数据类型,下章会详细介绍数据类型

结果:

10
8790885504960
<class ‘int‘>

5、实例:

id相等的变量,值一定相等,指向的是同一个内存地址;值相等的变量,id不一定相等。

x = 11
y = x
z = 11
print(x == y)  # True
print(x is y)  # True
print(x is z)  # True,整数池的原因

x = 255
z = 255
print(id(x) is id(z))  # False

四、花式赋值

1 链式赋值

a = b = c = d = 10
print(fa:{a}, b:{b}, c:{c}, d:{d}) #a:10, b:10, c:10, d:10

2 交叉赋值

# 交叉赋值
x = 10
y = 20

x, y = y, x
print(x, y) #20 10

# 使用临时变量
x = 10 
y = 20

temp = x
x = y
y = temp

print(x, y) #20 10

五、与用户交互

name = input(请输入你的姓名:)
pwd = input(请输入你的密码:)

print(type(name))
print(type(pwd))

无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型。

六、格式化输出

1 占位符

%s接收任意数据类型的数据
%d接收数字类型的数据

name = nick
age = 19
print(my name is %s my age is %d % (name, age))

2 format格式化

{}接收任意数据类型的数据

name = nick
age = 19
print("Hello, {}. You are {}.".format(name, age))#Hello, nick. You are 19.

print("Hello, {1}. You are {0}-{0}.".format(age, name))#Hello, nick. You are 19-19.

print("Hello, {name}. You are {age}-{age}.".format(age=age, name=name))#Hello, nick. You are 19-19.

3 f-string格式化

在字符串前面加上f或F,然后使用{}接收任意数据类型的数据

name = "nick"
age = 19
print(F"Hello, {name}. You are {age}.")#Hello, nick. You are 19.

print(f{age*2})#38

salary = 6.6666
print(f{salary:.2f})#6.67

七、基本运算符

1 算术运算符

- * / % // **

# 地板除,只取整数部分
print(10 // 3)  # 3
print(10 // 4)  # 2

# %:取余
print(10 % 3)  # 1

# **,幂
print(10 ** 3)  # 1000

2 逻辑运算符

and or not

# 从左到右的方式找到逻辑运算符,找到逻辑运算符的左边,左边成立,再去找到逻辑运算符的右边
print(3 > 3 and 1 > 2 or 2 > 1)  # False

3 比较运算符

> >= < <= == !=

4 赋值运算符

= = -= *= /= //= **= %=

5 身份运算符,比较两个对象的存储单元。

is、 is not

is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中), ==用于判断引用变量的值是否相等。

  • id相同的值一定相同,值相同的id不一定相同

6 位运算符

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = 0

c = a & b
print( c)# 12 = 0000 1100
c = a | b
print(c)# 61 = 0011 1101
c = a ^ b
print( c)# 49 = 0011 0001
c = ~a
print( c)# -61 = 1100 0011
c = a << 2
print(c)# 240 = 1111 0000
c = a >> 2
print(c)# 15 = 0000 1111

7 成员运算符

in、 not in

a = 10
b = 20
list = [1, 2, 3, 4, 5]

print(a in list) # false

8 运算符优先级(略)

如果需要某个运算符优先运算,则加个括号,使用a and b is c == d的是傻逼

9 解压缩

hobby_list = [read,run,sleep,fishing,piao]

# 如果取第2-3个爱好
_,hobby2,hobby3,*_ = hobby_list

print(hobby2, hobby3) #run sleep

字典也是可以的,但是字典解压缩的是key。

info = {name: nick, age: 18}
x, y = info
print(x, y) #name age

八、流程控制

1 if判断

# if
if 条件:
    代码块

# if...else
if 条件:
    代码块
else:
    代码块

# if...elif....elif...else
if 条件:
    代码块
elif 条件: 
    代码块
elif 条件:
    代码块

...(可以写任意个elif)

else:
    代码块

2 while循环

#while
while 条件:
    代码块

#while   break
while 条件:
    代码块
    break  # 结束本层循环,跳出循环

# while   continue
while 条件:
    代码块
    if 条件:
        代码块
        cotinue  # 不执行下面代码,然后继续循环,即跳出本次循环
    代码块

#while   else
while 条件:
    代码块
else:
    print(如果我没有被break,我就会被打印出来)
实例:
n = 1
while n < 4:
    print(n)
    n  = 1
else:
    print("a")
    #1,2,3,a

3 流程控制之for循环

for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。

#for
for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)

#for   break
for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)
    break  # 结束本层循环

# for   continue
for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)
    if 条件:
        continue  # 结束本次循环,即不执行下面代码,继续循环
    代码块

#for   else
for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)
else:
    print(如果我没有被break,我就会被打印出来)
实例:
# for循环按照索引取值
name_list = [nick, jason, tank, sean]
for i in range(len(name_list)):
    print(i, name_list[i])

Python基础

标签:string   字符串类   python   数字类型   input   垃圾回收机制   class   循环   tin   

温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/biancheng/12243.html