常见面试题总结(1)

本文探讨了一种常见的面试技巧——使用异或操作来无额外变量地交换两个数值。通过异或的性质,可以巧妙地实现变量间的值互换。
摘要由CSDN通过智能技术生成
1、写一个程序交换两个变量的值?
方法一:使用加减法进行交换
1 #main方法
 2 def main():
 3     #提示用户输入的数据信息
 4     numOne=int(raw_input("请输入第一个数字:"))
 5     numTwo=int(raw_input("请输入第二个数字:"))
 6
 7     #打印数据信息
 8     print("交换前的数据分别为:%d,%d"%(numOne,numTwo))
 9
10     #进行数据的交换
11     numOne=numOne+numTwo
12     numTwo=numOne-numTwo
13     numOne=numOne-numTwo
14
15     #打印数据信息
16     print("交换后的数据分别为:%d,%d"%(numOne,numTwo))
17
18 #程序入口
19 if __name__ == '__main__':
20     main();

方法二:使用异或法进行交换

1 #main方法
 2 def main():
 3     #提示用户输入的数据信息
 4     numOne=int(raw_input("请输入第一个数字:"))
 5     numTwo=int(raw_input("请输入第二个数字:"))
 6
 7     #打印数据信息
 8     print("交换前的数据分别为:%d,%d"%(numOne,numTwo))
 9
10     #进行数据的交换
11     numOne=numOne^numTwo
12      numTwo=numOne^numTwo
13      numOne=numOne^numTwo
14
15     #打印数据信息
16     print("交换后的数据分别为:%d,%d"%(numOne,numTwo))
17
18 #程序入口
19 if __name__ == '__main__':
20     main();
------------------------------
2、在Python中,类和对象有什么区别?对象如何访问类的方法?对象和类能否互相访问对方的方法或者属性?
  答:
    类是一类对象的集合,是一个模版,封装了对象的属性和方法,是实例对象产生的工厂,类可以产生多个实例对象
    主要特点:
      class语句创建类对象并将其赋值给变量名;
      class语句内的赋值语句会创建类的属性;
      类属性提供对象的状态和行为;
    对象是类的实例,由类的构造函数生成,实例化类的属性和方法      
    主要特点:
      像函数那样调用对象会创建新的实例对象;
          每个实例对象继承类的属性并获得了自己的命名空间;
      在方法内对self属性做赋值运算会产生每个实例自己的属性
 
    对于实例的属性和方法,只能由实例调用,类不可以调用
    对于类的属性和方法,类和实例对象都可以去调用
3、用Python编写一个简单的socket程序,服务器想客户端发送一句话“Python is not hard”,客户端回送一句话“life is short,please use python”
1 #coding=utf-8
  2
  3 #引用对应的包
  4 import socket
  5 import sys
  6 import threading
  7 from time import sleep
  8
  9
 10 #线程:模拟udp服务器向客户端发送一句话:Python is not hard
 11 class ServerThread(threading.Thread):
 12     #重写对应的构造方法
 13     def __init__(self, port):
 14         threading.Thread.__init__(self)
 15         self.port = port
 16
 17     #进行run方法的重写操作
 18     def run(self):
 19         #创建udp服务器套接字
 20         self.serverSoc=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
 21
 22         #元组,存储服务器端ip地址和端口号
 23         self.locker = ('192.168.241.128',self.port)
 24
 25         #绑定服务器ip和端口
 26         self.serverSoc.bind(self.locker)       
 27
 28
 29         #元组,存储要发送的指定客户端的ip地址和端口号,客户端指定端口号为8080
 30         self.sendAddr = ('192.168.241.128',8080)
 31
 32
 33         print("服务器开启")
 34
 35         sleep(1)
 36
 37         #变量,存储要发送的内容
 38         self.sendDate = 'Python is not hard'
 39
 40         #进行数据向客户的发送
 41         self.serverSoc.sendto(self.sendDate,self.sendAddr)
 42
 43         #阻塞,接受客户端回发回来的数据信息
 44         self.recvDate,self.recvAddr = self.serverSoc.recvfrom(1024)
 45
 46         print("客户端:%s"%(self.recvDate))
 47
 48         #关闭套接字
 49         self.serverSoc.close()
 50
 51
 52 #线程:模拟udp客户端接受服务器发送的数据,并且恢复一句“life is short,please use python”
 53 class ClientThread(threading.Thread):
 54     #重写对应的构造方法
 55     def __init__(self,port):
 56         threading.Thread.__init__(self)
 57         self.port = port
 58
 59     #重写对应的run方法
 60     def run(self):
 61         #创建udp客户端套接字
 62         se
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值