我的编程空间,编程开发者的网络收藏夹
学习永远不晚

zero python.2

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

zero python.2

1.使用函数 

2.装饰器 

3.异常处理 

4.socket 


wKiom1imhcqyLOXMAABm6i-XhL0154.jpg

1.使用函数


  给函数传递参数时,可以灵活传递实参数量。形参在定义时,使用到列表、字典。

# 定义函数
def f (hostip, port='52161'):
    print('host is %s' %hostip)
    print('port is %s' %port)

# 调用函数
f('127.0.0.1')
f('localhost' , '3303')
f(port='123', hostip='129')
# 定义函数f
def f (*args):
    print('f', args)

# 调用函数f
f(1,3,5,7,9,1100)
f('1', '3', '5', '7', '9', '1100')
args = ['hongkong', 'qingtao', 'tokey']

f(args)
f(*args)

# 定义函数f2
def f2(**args):
    print('f2', args)

# 调用函数f2
f2(**{'hostname':'task', 'port':'52161'})
args={'hostname':'localhost', 'port':'52161', 'value':True}
f2(**args)



2.装饰器


  


2.1.嵌套函数

  

2.2.高阶函数

  


3.异常处理


  


4.socket


  网络上两个程序通过一个双向通信连接实现的数据交换,该连接的一端称为一个socket。一个socket是对tcp信息、ip信息的封装后用来为应用层服务的,是一个通讯的句柄。

4.1.python2.7

  模拟一个114问询台(2.7版本的程序实例):

# 服务器端
#!/usr/bin/env python
# coding:utf-8
# Version:2.7

import socket

HOST = '10.10.14.9'     # Symbolic name meaning all available interfaces
PORT = 50007              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
print 'Listening...'
conn, addr = s.accept()
print 'connected...'

while True:
    data = conn.recv(1024)
    if data == "bye":
        conn.close()
        print 'client: Thanks.'
        break
    print "Client: " + data
    data = raw_input('server: ')
    conn.sendall(data)
# 客户端
#!/usr/bin/env python
# coding:utf-8
# Version:2.7

import socket

HOST = '10.10.14.9'    # The remote host
PORT = 50007              # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

while True:
    client = raw_input('client: ')
    if client == 'bye':
        s.sendall(client)
        s.close()
        print 'server: Welcome'
        break
    s.sendall(client)
    data = s.recv(1024)
    print 'server: ' + data


4.2.python3.5

  这里讨论的socket网络层仅使用INET,传输层使用TCP。


4.2.1.web访问

  创建socket,当我们浏览网页http://donatello.cc/时,就等于创建一个“客户端socket”。

cs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cs.connect(('localhost', 8080))

cs.send(b'hello')
data = cs.recv(4096)

这里创建的套接字s,既是用于发送请求、同时也接受响应。客户端套接字通常存活于一个交换周期,就自动销毁。

  服务端的socket稍微复杂点

ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 仅仅监听了ipv4、tcp,使用()空白表示全都监听
ss.bind(('localhost', 8080)) #监听了本地的8080端口,‘’表示监听所有本地接口
ss.listen(15) # 15个以外的链接会被拒绝

while True:
    (clientsocket, address) = ss.accept()
    print('new connection: ', address)
    print('clientsocket.recv(): ', clientsocket.recv(4096))
    clientsocket.send(b'ack')

  使用socket通讯时,客户端仅仅使用了client-socket,服务端同时使用了server-socket、client-socket。通常由客户端的套接字来发起一个请求,从而在客户端、与服务端建立起一个对等的会话。会话建立后,就开始处理send、recv。当recv返回0字节时,说明另外一端已经关闭、或者正在关闭。

  服务端控制台:

C:\Python36\python3.exe C:/Users/Administrator/PycharmProjects/专题:socket/createServerSocket.py
new connection:  ('127.0.0.1', 4681)
clientsocket.recv():  b'hello'
new connection:  ('127.0.0.1', 4682)
clientsocket.recv():  b'hello'


4.2.2.ssh访问

  server端

server = socket.socket()
server.bind(('localhost', 221))
server.listen(10)

while True:
    conn, addr = server.accept()
    while True:
        data = conn.recv(1024)
        if not data:
            print('client is lost.')
            break
        print('cmd executing.')
        com_res = os.popen(data.decode()).read()
        conn.send(com_res.encode())

  client端

client = socket.socket()
client.connect(('localhost', 221))

while True:
    cmd = input('# ').strip()
    if 0 == len(cmd):
        continue
    client.send(cmd.encode('utf-8'))

    cmd_result = client.recv(1024)
    print(cmd_result.decode())


zero python.2

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

zero python.2

1.使用函数 2.装饰器 3.异常处理 4.socket 1.使用函数  给函数传递参数时,可以灵活传递实参数量。形参在定义时,使用到列表、字典。# 定义函数def f (hostip, port='52161'):    print('h
2023-01-31

zero python.1

1.变量  2.流程控制  3.序列、字典、集合  4.文件  1.变量 程序中用来保存数据。定义时,不用指定变量类型,输出时使用print直接输出:>>> say = 'hello Python'>>> print("sunny said
2023-01-31

Pycharm报错Non-zero exit code (2)如何解决

本篇内容介绍了“Pycharm报错Non-zero exit code (2)如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言使用
2023-07-02

Python使用Zero-Copy和Bu

无论你程序是做什么的,它经常都需要处理大量的数据。这些数据大部分表现形式为strings(字符串)。然而,当你对字符串大批量的拷贝,切片和修改操作时是相当低效的。为什么?让我们假设一个读取二进制数据的大文件示例,然后将部分数据拷贝到另外一个
2023-01-30
2023-01-31

python的PyGame Zero怎么用

本文小编为大家详细介绍“python的PyGame Zero怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“python的PyGame Zero怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 在你的游
2023-06-16

Python(2)

一、python是强类型语言:1、两个对象比较:(1)、身份(内存地址):两个对象的引用是否相同。 id(a)==id(b)或者a is b (2)、值:两个对象的数据是否相等。 a==b(3)、类型:两个对象的类型是否相同。 type(a
2023-01-31

记一次在OrangePiZero2(香橙派zero 2)上部署Redroid(云手机)的过程

一句废话 这次换一种写作风格,尝试一下轻松的行文方式。 起因 很久以前看见有群友讨论关于docker部署Redroid,拿来挂机玩游戏一类的。当时听了感觉很有意思,后面粗浅地在zero2上部署了一下,容器虽然是跑起来了,但是scrcpy连接
2023-08-16

Django1.7+python 2.

配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之前看教程的原则,好像就是说开发环境要和生产环境尽量的一致,所
2023-01-31

selenium 2 + python

在使用selenium 2的时候,经常会碰到打开一个页面后新页面以新窗口打开,因为脱离当前窗口需要重新定位窗口,可以用以下方法定位到需要的窗口。#父窗口是0browser.switch_to_window(browser.window_ha
2023-01-31

2 . python Collectio

nametuple() 是具有命名字段的元组的工厂函数命名元组为元组中每个位置赋予含义,并允许更具可读性的自编写代码 它们可以在任何使用常规元组的地方使用,并且他们添加了按名称而不是位置索引访问字段的功能。用法:collections.na
2023-01-31

Python 2 和 Python 3

Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷。---摘录自《流畅的Python》  你可能从来没有听说过学 Java
2023-01-31

python 函数(2)

一、内容回顾1.面试题相关:1.py2和py3的区别2.运算符的计算 :3 or 9 and 83.字符串的反转4.is和==的区别5.v1 = (1) v2 = 1 v3 = (1,)有什么区别v1 、v2都是数字,v3是元组6.线上操作
2023-01-31

Python练习【2】

题目1:用Python实现队列(先入先出)入队出队队头队尾队列是否为空显示队列元素代码:list=[] ##定义空列表用于存储数据tip = """******队列******1.入队2.出队3.队头4
2023-01-31

Python作业2

1.分别取出0到10中的偶数和奇数。   2.判断一个数是否是质数 *程序*测试   3题目*程序*测试
2023-01-31

#2 安装Python

上一篇文章主要记录 了Python简介,相信你已经爱上了小P,俗话说的好:公欲善其事,必先利其器,所以本文将带领你安装Python3!Windows平台1.确认Windows位数:鼠标右击此电脑-->打开属性,如下图所示:2.下载对应的Py
2023-01-30

Notes for python (2)

使用列表例9.1 使用列表#!/usr/bin/python# Filename: using_list.py# This is my shopping listshoplist = ['apple', 'mango', 'carrot',
2023-01-31

python 第2天

import easygui,randomsecret = random.randint(1,99)easygui.msgbox("""I have a secret ,It is a number from 1-99 ,you have
2023-01-31

ansible python api 2

最近想利用python来调用anbile来实现一些功能,发现ansible的api已经升级到了2.0,使用上比以前复杂了许多。 这里我参考了官方文档的例子,做了一些整改,写了一个python调用ansible的函数,执行过程中输出执行结果。
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录