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

python编程练习

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

python编程练习

1.创建一个文件,文件的第一行写入0,再创建20个任务线程,他们同时打开文件并将文件第一行读出来,加1写回去(将文件原有值覆盖掉)请保证20个任务线程完成后,文件中的第一行一定是20!

 

2.完成一个cs架构程序,服务端一旦接受到客户端请求文件路径后,判断此文件是否存在,如果存在,将文件内容发送给客户端,如果不存在,也请告知客户端.

 

```

编程1:

from threading import Thread, Lock
from time import sleep

lock = Lock()
#f1 = open('./a.txt', mode='w')
#f1.write('0')
def thrjob():
try:
lock.acquire()
while True:
f2 = open('./a.txt', mode='r+')
rtext = f2.read(10)
if rtext == '':
# 读到文件结束标志EOF时,返回''
break
print(rtext, type(rtext))
rtext2 = int(rtext)
print(rtext2, type(rtext2))
rtext2 = rtext2 + 1
print(rtext2, type(rtext2))
f3 = open('./a.txt', mode='w')
rtext3 = str(rtext2)
f3.write(rtext3)
finally:
lock.release()


if __name__ == '__main__':
l = []
for i in range(20):
l.append(Thread(target=thrjob))
for i in range(20):
l[i].start()
#for i in range(20):
l[i].join()
print('main will be gone')

 

 

编程2:

服务器端:

 

import socket
import os
sd = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
sd.bind(('', 8889))
sd.listen(100)

while True:
try:
# 接听 newsd 数据交换
newsd, raddr = sd.accept()
print("data from ip:{}, port:{}".format(*raddr))

# 收发消息
s = newsd.recv(1024)
s1 = s.decode()
print(s1)
print(os.path.exists(s1))
if os.path.exists(s1):
print('aaaa')
f1 = open(s1, mode='r+', encoding='utf-8')
while True:
rtext = f1.read(10000)
if rtext == '':
# 读到文件结束标志EOF时,返回''
break
print(rtext)
rtext1 = rtext.encode()
newsd.send(rtext1)
else:
s = '未找到'
s1 = s.encode()
newsd.send(s1)

except:
sd.close()



客户端:


import socket

sd = socket.socket()
sd.connect(('192.168.152.1', 8889))
s = './a.txt'
s1 = s.encode()
sd.send(s1)
rtext1 = sd.recv(1024)
rtext = rtext1.decode()
print(rtext)


sd.close()


```

总的来说这几天学的知识用到了io操作,线程,和套接字(socket)和一丢丢的os,将这些东西联系起来,编程1用类去完成会更好些,好多代码框架还是看的老师的样本,尽量自己记下来

 下面评论为补充方法

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python编程练习

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

下载Word文档

猜你喜欢

python编程练习

1.创建一个文件,文件的第一行写入0,再创建20个任务线程,他们同时打开文件并将文件第一行读出来,加1写回去(将文件原有值覆盖掉)请保证20个任务线程完成后,文件中的第一行一定是20! 2.完成一个cs架构程序,服务端一旦接受到客户端请求文
2023-01-30

【python】编程学习练习题--3

1 #利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456:代码:  2   3 from functools import reduce  4 str = '123.456'  5 
2023-01-31

python核心编程2 第五章 练习

5-2 运算符(a) 写一个函数,计算并返回两个数的乘积(b) 写一段代码调用这个函数,并显示它的结果1 def product(x, y):2 3 return x * y4 5 if __name__ == '__main__'
2023-01-30

python核心编程2 第六章 练习

6-2. 字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来辅助 1 im
2023-01-30

python核心编程2 第九章 练习

9–1. 文件过滤. 显示一个文件的所有行, 忽略以井号( # )开头的行. 这个字符被用做Python , Perl, Tcl, 等大多脚本文件的注释符号.附加题: 处理不是第一个字符开头的注释.1 filename = input("输
2023-01-30

python核心编程2 第十章 练习

10-6.改进的open()。为内建的open()函数创建一个封装。使得成功打开文件后,返回文件句柄:若打开失败则返回给调用者None,而不是生成一个异常。这样你打开文件就不需要额外的异常处理语句。 1 def openfile(file)
2023-01-30

python核心编程2 第十二章 练习

12–5. 使用 __import__().(a) 使用 __import__ 把一个模块导入到你的名称空间。 你最后使用了什么样的语法?(b) 和上边相同, 使用 __import__() 从指定模块导入特定的名字。1 module =
2023-01-30

python练习_编写登陆接口

具体需求输入用户名密码认证成功后显示欢迎信息输错三次后锁定一、 实现思路                                                                                   
2023-01-30

Python练习程序(一)Python用

功能:用户认证后,联系人信息查询#!/usr/bin/env python#coding=utf-8name = raw_input("请输入你的用户名:")while name != 'fgf':        name = raw_in
2023-01-31

python练习

Python统计列表中的重复项出现的次数的方法#方法1:mylist = [1,2,2,2,2,3,3,3,4,4,4,4]myset = set(mylist)  #myset是另外一个列表,里面的内容是mylist里面的无重复 项for
2023-01-31

Python练习3

无意看到老男孩的博文:合格linux运维人员必会的30道shell编程面试题及讲解http://oldboy.blog.51cto.com/2561410/1632876尝试着用刚开始学的python解答一些,权当练手了!如有错误,还请批评
2023-01-31

Python练习10

无意看到老男孩的博文:合格linux运维人员必会的30道shell编程面试题及讲解http://oldboy.blog.51cto.com/2561410/1632876尝试着用刚开始学的python解答一些,权当练手了!如有错误,还请批评
2023-01-31

python练习题

#############################userername = raw_input("USERNAME:")password = raw_input("PASSWORD:")if username == "user" a
2023-01-31

python练习2

# 理论性1. 写出python中的几种分支结构,并解释其执行过程;2. 写出python中的几种循环结构,并解释其执行过程;3. python中是否支持switch语句?   如果支持,写出该语句格式;   如果不支持,说说python中
2023-01-31

Python练习1

问答:1.你理解的python是什么?为什么会使用python?稍微比别的语言简单点,linux自动化运维需要2. 解释python第一行怎么写?写的内容是做什么的?怎么写可移植性强?为什么?#!/usr/bin/env python 说明
2023-01-31

Python练习【2】

题目1:用Python实现队列(先入先出)入队出队队头队尾队列是否为空显示队列元素代码:list=[] ##定义空列表用于存储数据tip = """******队列******1.入队2.出队3.队头4
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动态编译

目录