你好,作为编码10几年程序员,之前从事C++开发,3年前转战Python开发,下面结合自身工作经历,谈下我的看法。
零基础零经验自学Python零基础自学Python, 其实问题也不大,如果基础不错的话,而且愿意多花时间,我本人之前从事C、C++开发,3年前接触了Python,也是自学的,讲真,Python知识点还是挺多的,这里简单罗列一下,包括不限于:数据类型:String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)),其中List(列表) 是 Python 中使用最频繁的数据类型;运算符:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级、网络编程相关、数据库操作相关知识,这里网络知知识要想掌握还是需要花费一些精力的,如果0基础,要短时间掌握这些基础知识,我觉得还是有一定难度的,不过没关系,上次听朋友说 扇贝编程 还不错,课程质量高,包括了全面Python基础知识的学习,而且老师们经验丰富,亲自授课,感兴趣的话,点击下方链接报名,只需3.9元,4天带你轻松入门,限100名↓
下面贴个socket服务端代码供参考,涉及socket网络编程、多线程编程等:
def ProcessClient(client, address):
print('收到客户端的信息了000')
while True:
try:
#设置超时时间
client.settimeout(1000)
fileinfo_size = struct.calcsize('128sl')
print("长度为 " + str(fileinfo_size))
buf = client.recv(fileinfo_size)
if buf: # 如果不加这个if,第一个文件传输完成后会自动走到下一句
filename, filesize = struct.unpack('128sl', buf)
filename_f = filename.strip(b'\00')
token = str(uuid.uuid4())
token = token.replace('-', '')
print(str(filename_f))
naturename = filename_f.decode('utf-8')
filenewname = token + naturename
print('file new name is %s, filesize is %s' % (filenewname, filesize))
recvd_size = 0 # 定义接收了的文件大小
file = open(filenewname, 'wb')
print('stat receiving...')
while not recvd_size == filesize:
if filesize - recvd_size > 1024:
rdata = client.recv(1024)
recvd_size += len(rdata)
else:
rdata = client.recv(filesize - recvd_size)
recvd_size = filesize
file.write(rdata)
file.close()
print('receive done')
db_path = 'test.sqlite'
conn = sqlite3.connect(db_path)
print("打开了数据库2")
insertIMG(conn, filenewname, naturename)
conn.commit()
conn.close()
#将接收到的信息原样的返回到客户端中
msg = "quit"
client.send(msg.encode(encoding='utf-8'))
client.close()
break
#超时后显示退出
except socket.timeout:
print('time out')
client.close()
# 创建套接字
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置IP和端口
# host = socket.gethostname()
host = '127.0.0.1'
port = 3333
# bind绑定该端口
mySocket.bind((host, port))
# 监听
mySocket.listen(10)
while True:
# 接收客户端连接
print("等待连接....")
client, address = mySocket.accept()
print("新连接")
print("IP is %s" % address[0])
print("port is %d\n" % address[1])
# 发送消息
thread = threading.Thread(target=ProcessClient, args=(client, address))
thread.start()
到精通Python要多久啊? 一年?两年?5年?这个问题不能一概而论,每个人基础不一样,对新知识的悟性也不一样,就像之前我同事,虽然年纪轻轻,中国科技大学毕业,学新东西的确非常快。但大体上,精通一门语言不是几个月,1年2年年就能完成的,主要还是需要实践中不断应用Python语言的特性,逐步提高的,如果只是一味的看书,不写代码,或者写一点非实战的小Demo, 其实我觉得用处不大的,就像我本人学习C++一样,在学校时感觉啥都会了,到了实际工作中,才感觉到之前理解的知识点不到位,直到今天,我也不敢说我精通C++, 同样, Python虽然语法简单,但是要大规模应用到开发中,还是需要长时间积累的,而且作为0基础同学,更是觉得困难重重,如果有前辈带着做项目,几个项目打磨下,会对进一步掌握Python起非常大的作用,这里,我推荐 扇贝编程, 口碑不错,9年来致力于在线教育产品的研发,服务学位累计100000000+,现在报名,3.9元即可,仅限100名,感兴趣的话,可以点击下方链接 ↓
当然,真正要学好一门语言,不仅需要掌握全面的基础知识,还需要在实际项目中不断提高,总的来说,基础知识的前提,参与项目是关键。
个人意见,仅供参考,希望对你有帮助。