Python --简介

目录

1, 语句和表达式的区别

2, 输入和输出

2-1, 输入(input)

2-2, 输出(print)

3, 运算符

3-1, 算数运算符

3-2, 比较运算符

3-3, 逻辑运算符

3-4, 运算符之间的优先级

4, 语句和语法

5, 变量和赋值

5-1, 变量命名规范

5-2, 变量说明

5-3, 赋值

5-3-1, 复合运算赋值

5-3-2, 多重赋值

5-3-3, 多元赋值

5-4, 私有变量

6, 基本的风格指南

6-1, 文档字符串

6-2, 模块的结构和布局

7, 内存管理


1, 语句和表达式的区别

不同点:语句中包含关键字,表达式无关键字

相同点:语句和表达都可以有输出,也可没有输出

2, 输入和输出

2-1, 输入(input)

通过内建方法"input(提示信息)"获取用户输入,会截取末尾的换行符;若提供了"提示字符串",则显示该字符串

In [56]: input('请输入:')
请输入:

2-2, 输出(print)

通过内建方法"print(result)"输出结果, 默认给每一行添加一个换行符

In [57]: print('hello python')
hello python

3, 运算符

3-1, 算数运算符

支持的算数运算符:+、 -、  *、  /、  %(取余)、  **(乘方)

优先级:**  >  单目运算符  >  *、 /、 % > +、 -

3-2, 比较运算符

支持的比较运算符:>、 >=、<、 <=、 ==、 != 

3-3, 逻辑运算符

支持的逻辑运算符:and、 or、 not

优先级: not > and > or

3-4, 运算符之间的优先级

算数运算符 > 比较运算符 > 逻辑运算符

说明:适当的使用(),避免运算符的优先级问题导致的错误

4, 语句和语法

通过"井号(#)"表示注释符号, 从"#"开始,直到一行结束的内容都是注释

通过"换行(\n)"表示行分割符

通过"反斜杠(\)"表示继续上行

# \用于将一行语句分行书写
In [61]: if  a==1 and \
    ...: b ==1:
    ...:     pass

# 说明:使用闭合操作符([], {}, ())可以将一行分成多行;
# 使用三引号也可以将一行分成多行
# 推荐使用(),将一行分成多行

通过"分号(;)"可以将多个语句连接在一行, 缺点:不易读,不推荐使用

In [60]: a = b = 1
In [62]: print(a);print(b)
1
1

通过"冒号(:)"将代码块的头和体分开

说明:同一缩进程度的语句为同一层次关系,没有缩进的部分为代码主体;

5, 变量和赋值

5-1, 变量命名规范

变量名大小写敏感, 字母、 _、 数字组成,且首字母不能为数字

5-2, 变量说明

不支持自增1和自减1, 如++1, --1

不需要预先声明变量类型,因为变量的类型和值在赋值的那一刻被初始化

赋值语句没有返回值

# 由于(y=1)没有返回值,所以报错
In [68]: x = (y=1)
  File "<ipython-input-68-d2676719b49a>", line 1
    x = (y=1)
          ^
SyntaxError: invalid syntax

5-3, 赋值

赋值不是将obj的值赋给变量,而是将obj的引用赋给变量

5-3-1, 复合运算赋值

支持通过复合操作符("变量A 运算符= 变量B")进行赋值,增量赋值的好处:对象仅被处理了一次

# 通过"变量A 运算符= 变量B"进行复合运算
# 这里的运算符支持算数运算符、位运算符
​In [69]: a = 10
In [70]: a += 10
In [71]: a
Out[71]: 20

5-3-2, 多重赋值

通过变量"变量A = 变量B = 值"方式进行多重赋值

In [101]: x = y = 1

In [102]: x, y
Out[102]: (1, 1)

5-3-3, 多元赋值

用过"变量A, 变量B = 值A, 值B"方式进行多元赋值

In [1]: x, y = 1, 2

In [2]: x, y
Out[2]: (1, 2)

In [3]: x, y = y, x

In [4]: x,y
Out[4]: (2, 1)

5-4, 私有变量

类中带有__xxx的变量(变量名前有双下划线):为类的私有变量,不能从外部进行访问

__xxx__(变量前后):视为系统变量

6, 基本的风格指南

6-1, 文档字符串

介绍函数,方法,类,模块的功能, 通过obj.__doc__进行访问, 在编码时推荐写上文档字符串

In [109]: def func():
     ...:     """this is my func"""
     ...:     pass
     ...:

In [110]: func.__doc__
Out[110]: 'this is my func'

6-2, 模块的结构和布局

第一行:起始行

第二行:模块文档

第三行:模块导入

第四行:变量定义

第五行:类定义

第六行:函数定义

第七行:主函数

#! /usr/bin/env python
# -*- coding:utf-8 -*-

"""this is my module"""

import os

a = 1

class MyClass(object):
    """MyClass doc"""
    pass


def my_func():
    """my_func doc"""
    pass

# 如果该模块是被导入,则__name__等于模块的名字
# 如果该模块是被执行,则__name__等于__main__
if __name__ == '__main__':
    my_func()

说明:py文件中,没有缩进的代码,不管是被导入,还是被执行,都会执行该层级代码

7, 内存管理

python的内存管理是通过解释器负责

通过引用计数(一个内部变量)表示变量被引用了多少次,引用计数解释器跟踪

垃圾收集是指当一个变量的引用计数为0时, 会由垃圾收集器来释放内存,垃圾收集器是一块独立的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python-socks是一个用于处理SOCKS代理的Python库。如果在使用Python时出现了"Python Socks is needed for SOCKS proxying but is not available"的错误提示,可以通过执行命令"pip3 install python-socks"来安装python-socks库。接下来,可以使用以下代码示例来设置和使用SOCKS代理: ```python import socks # 创建socket s = socks.socksocket() # 设置代理相关信息 (username, password, ip, port) = ('', '', '', 0) s.set_proxy(socks.SOCKS5, addr=ip, port=port, username=username, password=password) # 连接目标网站 s.connect(("www.baidu.com", 80)) # 发送GET请求 s.sendall(b'GET / HTTP/1.1\n\r' b'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\n\r' b'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:99.0) Gecko/20100101 Firefox/99.0\n\r' b'\n\r') # 读取GET响应结果 print(s.recv(4096).decode(encoding='UTF-8')) ``` 上述代码中,首先导入了socks库,然后创建了一个socksocket对象s。通过调用s.set_proxy()方法设置了SOCKS5代理的相关信息,包括代理类型、地址、端口,以及可选的用户名和密码。接下来,调用s.connect()方法连接到目标网站。最后,使用s.sendall()发送GET请求,并使用s.recv()方法读取响应结果。 请注意,代码中的用户名、密码、代理地址、代理端口以及请求头部信息需要根据实际情况进行修改。并且需要确保已经安装了python-socks库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python | 使用Socks5](https://blog.csdn.net/yimtcode/article/details/124541695)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python中socks包(SocksiPy)的安装、使用方法简介](https://blog.csdn.net/qq_27378621/article/details/81012561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值