python编程题

1.编写程序,判断某天是某年第几天。

import time
data=time.localtime()#获取时间
year,month,day=data[:3]
day_month=[31,28,31,30,31,30,31,31,30,31,30,31]

if year%400==0 or(year%4==0 and year%100!=0):
   day_month[1]=29

if month==1:
    print(day)
else:
    print(sum(day_month[:month-1])+day)

2.判断一个数是否为素数。

import math

n=input('请输入要判读是否是素数的数值:')
n=int(n)
m=math.ceil(math.sqrt(n)+1)
for i in range(2,m):
    if n%i==0 and i<n:
        print('no')
        break
    else:
       print('yes')

3.:编写程序,计算百钱买百鸡问题。

#假设能买x只公鸡,x最大为20
for x in range(21):

    #假设能买y只母鸡,y最大为33
    for y in range(34):
        #假设能买z只小鸡
        z = 100-x-y
        if (z%3==0 and 5*x + 3*y + z//3 == 100):
              print(x,y,z)

4.编写程序,输出星号组成的菱形。

def main(n):
    for i in range(n):
        print((' * '*i).center(n*3))
    for i in range(n, 0, -1):
        print((' * '*i).center(n*3))

n = input('请输入一个整数:')
main(int(n))

5.:编写函数,接收一个整数 t 为参数,打印杨辉三角前 t 行。

def demo(t):
    print([1])
    print([1,1])
    line = [1,1]
    for i in range(2,t):
        r = []
        for j in range(0,len(line)-1):
            r.append(line[j]+line[j+1])
        line = [1]+r+[1]
        print(line)
demo(10)

6.编写函数,接收两个正整数作为参数,返回一个数组,其中第一个元素为最
大公约数,第二个元素为最小公倍数。

def demo(m,n):
    if m>n:
        m, n = n, m
    p = m*n
    while m!=0:
        r = n%m
        n = m
        m = r
    return (n, p//n)
  1. 生成斐波那契数列的函数定义和调用

    def fib(n):
    a, b = 0, 1
    while a < n:

      print(a, end=' ')
      a, b = b, a+b

    print()
    fib(1000)

可视化3道题
1.#绘制带有中文标签和图例的图

import numpy as np
import pylab as pl
import matplotlib.font_manager as fm
myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf') #设置字体
t = np.arange(0.0, 2.0*np.pi, 0.01) #自变量取值范围
s = np.sin(t) #计算正弦函数值
z = np.cos(t) #计算余弦函数值
pl.plot(t, s, label='正弦',c='r')
pl.plot(t, z, label='余弦',c='b')
pl.xlabel('x-变量', fontproperties='STKAITI', fontsize=24) #设置 x 标签
pl.ylabel('y-正弦余弦函数值', fontproperties='STKAITI', fontsize=24)
pl.title('sin-cos 函数图像', fontproperties='STKAITI', fontsize=32) #标题
pl.legend(prop=myfont) #设置图例
pl.show()

2.#使用 pyplot 绘制,多个图形在一起显示

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 500)
y = np.sin(x)
z = np.cos(x*x)
plt.figure(figsize=(8,4))
#标签前后加$将使用内嵌的 LaTex 引擎将其显示为公式
plt.plot(x,y,label='$sin(x)$',color='red',linewidth=2) #红色,2 个像素宽
plt.plot(x,z,'b--',label='$cos(x^2)$') #蓝色,虚线
plt.xlabel('Time(s)')
plt.ylabel('Volt')
plt.title('Sin and Cos figure using pyplot')
plt.ylim(-1.2,1.2)
plt.legend() #显示图示
plt.show() #显示绘图窗口

3.#使用 pyplot 绘制,多个图形单独显示

import numpy as np
import matplotlib.pyplot as plt
x= np.linspace(0, 2*np.pi, 500) #创建自变量数组
y1 = np.sin(x) #创建函数值数组
y2 = np.cos(x)
y3 = np.sin(x*x)
plt.figure(1) #创建图形
ax1 = plt.subplot(2,2,1) #第一行第一列图形
ax2 = plt.subplot(2,2,2) #第一行第二列图形
ax3 = plt.subplot(2,1,2) #第二行
plt.sca(ax1) #选择 ax1
plt.plot(x,y1,color='red') #绘制红色曲线
plt.ylim(-1.2,1.2) #限制 y 坐标轴范围
plt.sca(ax2) #选择 ax2
plt.plot(x,y2,'b--') #绘制蓝色曲线
plt.ylim(-1.2,1.2)
plt.sca(ax3) #选择 ax3
plt.plot(x,y3,'g--')
plt.ylim(-1.2,1.2)
plt.show()

udp

import socket
#使用IPV4协议,使用UDP协议传输数据
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#绑定端口和端口号,空字符串表示本机任何可用IP地址
s.bind(('', 5000))
while True:
    data, addr = s.recvfrom(1024)#接收数据
    #显示接收到的内容
    data = data.decode()
    print('received message:{0} from PORT {1} on {2}'.format(data.decode(),addr[1], addr[0]))
    if data.lower() == 'bye':
        break
s.close( )

发送端

import socket
import sys
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#假设192.168.1.103是接收端机器的IP地址
s.sendto(sys.argv[1].encode() , ("192.168.1.103" ,5000))
s.close( )

TAG:none

发表新评论