python考试内容_python考试内容6.12-2019-06-12

test

import wx

import math

from homework2 import fact1

print(fact1(4))

'''homework2阶乘问题调用fact函数'''

#使用辗转相除法求任意两个数的最大公约数。

print("请输入两个数字,大的数字在前")

listyushu=[]

a=int(input())

b=int(input())

listyushu.append(a)

listyushu.append(b)

print(listyushu)

i=0

k=a%b

if a%b==0:#直接输出的情况 4,8

print(b)

else:

while k!=0:

k = listyushu[i] % listyushu[i + 1]#按照定义

i = i + 1

listyushu.append(k)

print(listyushu)

else:

print(listyushu[i])#取的是0前一个数

#求前10个素数

l2=range(1,50)#给定一大堆数,确保里面包括到了10个素数

print (l2)

list=[]

listend=[]

#下面是循环相乘,把每两个数的积都求出来。放在list里面

for i in l2:

for j in l2:

list.append(i*j)

print(list)

for i in list:

k=list.count(i)

if k<3: #由定义可知,只有1和它本身,所以素数它最多出现两次

listend.append(i)

print(listend[1:11])

l1=range(1,100,2)

sum=0

for i in l1:

sum=i+sum

print(sum)

dislist = ["a", "b","c"]

for e in dislist:

print(e)

l=range(2,10,5)

for e in l:

print(e)

s="liu,shou,xi"

slist=s.split(",")

print(slist)

ns=''.join(slist)

print(ns)

mtuple=('a','b',1,3.14)

ntuple=(1,2,3,5)

print("请输入x 和 y 的值")

x=int (input())

y=int (input())

print("结果",x**y)

print("请输入被除数和除数")

x2=int (input())

y2=int (input ())

print ("余数",x2%y2)

app = wx.App(False) # 创建一个新应用程序

frame = wx.Frame(None, wx.ID_ANY, "Hello World") # 创建窗口框架在顶层

frame.Show(True) # 显示框架窗口

app.MainLoop() # 进入窗口消息循环

homework2:

import time

'''要求能输出第N项,默认输出第10项'''

#这是循环方法:

def fib1(n=10):

l=range(2,20)

list=[0,1]

for i in l:

list.append(list[i-1]+list[i-2])

return print(list[n])

fib1()

#下面是递归方法:

#很难受,搞了半天,不能在return里面打印,在外面打印。很搞笑,心情复杂

#但是为什么不能 print(fib2(n - 1) + fib2(n - 2)) ???????

def fib2(n=10):

if n==1:

return 1

elif n==2:

return 1

return fib2(n - 1) + fib2(n - 2)

print(fib2(15))

'''第二道题:求阶乘,这里是函数,在test.py中是调用这个函数'''

#循环方法:

def fact1(n):

if (n == 0 or n == 1):

return 1

else:

product=1

while n >=2:

product=product*n * (n - 1)

n = n - 2

return product

#return fact1(n)

fact1(1)

start = time.clock()

#递归写法:

def fact2(n):

if (n==0 or n==1):

return 1

else:

return n*fact2(n-1)

# return fact2(n)

elapsed = (time.clock() - start)

print("Time used:",elapsed)

print(fact2(50))

homework3:

import re

import numpy as np

import pandas as pd

# import odata

'''

1统计一个文档词频aboutUN.txt,并将结果写入到wordsFrequence.text

涉及到分词

词 出现的次数

字典或集合

用split()

2一个文本文件,获取目前联合国的193个会员国的名字。并将其写入UNmemebers.txt中。

一种是正则表达式,另一种

'''

# obj='ython,python,Python'

# pattern=re.compile('[pP]ython')

# match1=re.match(pattern,obj)

# print('re.match',match1)

# match2=re.search(pattern,obj)

# print('re.search',match2)

# print('match.group',match2.group())#返回找到的字符

# print('match.span',match2.span() )# 返回位置 二元组

#

# match3=re.findall(pattern,obj)

# print('re.findall',match3)

#item 返回键值对 集合

#sorted 三个参数1列表,字典集合 2key 3

#lambda sorted

#re.compile

#BeautifulSoup,requests

text=''

f=open("C:\\Users\\goals2020\\Documents\\Tencent Files\\1322696720\\FileRecv\\aboutUN.txt")

for line in f:

text=text+line

f.close()

#先进行预处理,标点变空格,全变小写字母

text=text.replace('\n','')

text=text.replace('.','')

text=text.replace(',',' ')

text=text.replace('"','')

text=text.lower()

list1= text.split()

#把列表转为结合,为了去除重复的项

set= set(list1)

list2=list(set)

#新建一个字典

print(list1)

print(set)

print(list2)

dir = {}

for i in range(len(list2)):

dir[list2[i]] = 0 #字典值初始为0

for j in range(len(list1)):

if list2[i] == list1[j]:

dir[list2[i]] += 1

print(dir)

str1=str(dir)

str1=sorted(dir.items(),key=lambda x:x[1],reverse=True)

str1=str(str1)

print(str1)

file = open("D:\\DailySoftware\\ChromeDownloadSomething\\wordsFrequence.txt",'w')

for i in str1:

file.write(i)

if i==',':

file.write('\n')

file.close()

'''

多维数组拼接

对列操作

也可以用字典方式实现吧

'''

l1=[1,2,3,5]

l2=[1,2,7,3,9]

l3=[9,10,11,12,10]

l4=[13,14,15,16,11]

l5=list(zip(l2,l3,l4))

# l6=[ i for i in l1

# if i in l5[i][0]]

l7=[]

for i in range(0,len(l1)):

for j in range(0,len(l5)):

if l1[i] ==l5[j][0]:

l7.append(l5[j])

else:continue

print(l7)

print(l5)

# print(l6)

# print(l7)

homework4:

'''

面向对象三大特点:

抽烟....喝....

封装 继承 多态

python 定义一个链表

定义一个 UNmember类

和一个UNmberSet集合

属性:国家 ,地区,加入联合国日期,所在地区,人口,面积

将所有联合国/地区存在UNmemeberSet集合中,

将UNmemeberSet集合序列化,并保存在磁盘上的UNmember.dat

从从磁盘上读取UNmember.dat 并将每个会员国加/地区名输出控制台

urllib requests beautifulsoup

http://data.un.org/

http://data.un.org/en/index.html

'''

import requests, sys

import numpy as np

import pandas as pd

from lxml import etree

import pickle

class UNmember:

country_And_region232=[]

date=[]

location=[]

population=[]

area=[]

UNmemberset=()

#然而并不知道面向对象怎么用

if __name__ == "__main__":

# 貌似只能配套使用,解析,用xpath方法定位标签(class,id具体定位),及文字。

#取232个国家名

html = etree.parse('http://data.un.org/en/index.html', etree.HTMLParser())

UNmember.country_And_region232 = html.xpath('//ul/li//td[4]/text()')

# result_location = html.xpath('//ul/li//font/text()')

print(UNmember.country_And_region232)

print(len(UNmember.country_And_region232))

#这是最开始给的HTML文件,取193个成员国国家名

html0=etree.parse('file:///C:/Users/goals2020/Desktop/UN.html',etree.HTMLParser())

result_UNcountry193=html0.xpath('//div[@class="view-content"]//span[@class="member-state-name"]/text()')

print(result_UNcountry193)

print(len(result_UNcountry193))

#取每个国家的人口面积等属性,这是网页

target = 'http://data.un.org/en/'

information = html.xpath('//ul/li/a')

#循环取属性,放到这写表里

for i in information:

html_information=etree.parse(target + i.get('href'),etree.HTMLParser())

result_location=html_information.xpath('//ul//tbody/tr[1]/td[3]/text()')

# result_date=html_information.xpath('//ul//tbody/tr[2]/td[3]/text()')

# result_population=html_information.xpath('//ul//tbody/tr[3]/td[3]/text()')

# result_area=html_information.xpath('//ul//tbody/tr[4]/td[3]/text()')

UNmember.location.append(result_location)

# UNmember.date.append(result_date)

# UNmember.population.append(result_population)

# UNmember.area.append(result_area)

print(result_location)

#list 表的合并,成二维数组。之后按列操作

result_list=list(zip(UNmember.country_And_region232,UNmember.location))

#,UNmember.date,UNmember.population,UNmember.area

#这是按193个国家名和232个国家名取交集,从而取其列,结果放到l7里

l7=[]

for i in range(0,len(result_UNcountry193)):

for j in range(0,

len(result_list)):

# print(i)

if result_UNcountry193[i] ==result_list[j][0]:

l7.append(result_list[j])

# print(l7)

else:continue

# UNmember.UNmemeberset=set(l7)

print(l7)

print(len(l7))

#l7是我最后得出的结果

# out= open("D。。。。。一个路径text.dat",'wb')

# pickle.dump(l7,out)

# out.close()

#

#

# infile=open('D。。。。。一个路径text.dat','rb')

# pickle.load(inflie)

#todo 结果有数组有单个的表,应该统一格式进行写入文件操作。

homework5

'''

链表的实现。

try

except

接输出语句

pass

'''

class Node():

def __init__(self,d,n):

self.n=n

self.d=d

h2=Node(2,Node)

h1=Node(1,h2)

class Employee:

'所有员工的基类'

empCount = 0

def __init__(self, name, salary):

self.name = name

self.salary = salary

Employee.empCount += 1

def displayCount(self):

print

("Total Employee %d" % Employee.empCount)

def displayEmployee(self):

print

("Name : ", self.name, ", Salary: ", self.salary)

"创建 Employee 类的第一个对象"

emp1 = Employee("Zara", 2000)

"创建 Employee 类的第二个对象"

emp2 = Employee("Manni", 5000)

emp1.displayEmployee()

emp2.displayEmployee()

print

("Total Employee %d" % Employee.empCount)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值