发布于2019-08-20 10:12 阅读(5175) 评论(2) 点赞(5) 收藏(7)
这里考虑还没有学过N**32或者pow()等语法,所以用的是最麻烦的方法。
- num=eval(input("请输入数字"))
- i=32
- numf=num
- while i>0:
- numf=numf*num
- print(numf)
- i=i-1
在后面学到字符串的一些性质以后发现可以用for c in s来遍历字符串中的每个字符,其实垂直输出就是多了个回车。
- a=input("please ")
- i=len(a)
- while i>0:
- print(a[-i])
- i=i-1
eval()就是去掉‘’
- a=eval(input())
- print(a)
这里好像没考虑数字中没有小数点的情况,可以在while中在添加一个条件判断i是否到0
- a=input("little ")
- i=len(a)
- while a[-i]!='.':
- print(a[-i],end='')
- i=i-1
- n=eval(input("请输入整数N:"))
- sum=0
- for i in range(n):
- sum+=i+1
- print("1到N求和结果{}".format(sum))
没有考虑数字没有百位的情况,//取整是不要小数部分的取整
- i=eval(input("please\n"))
- i=i//100
- print(i)
- s=input("Please\n")
- sl=s.split(' ')
- for a in sl:
- print(a)
- i=eval(input("please\n"))
- l=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
- print(l[i-1])
这个可以判断不仅5位
- i=eval(input("please\n"))
- s=str(i)
- l=len(s)//2
- flag=True
- while l>0:
- if s[l-1]!=s[-l]:
- flag=False
- print("no")
- break
- l=l-1
- if flag==True:
- print('yes')
十六进制和八进制在教材里都有提到现成的函数hex()和oct(),可是好像没有说二进制的,这里利用除2的办法求
刚才在教材第九章中的random那一节中看到了二进制函数bin(),在P166
- x=eval(input("please\n"))
- print(hex(x))
- print(oct(x))
- s=''
- while x>1:
- x,b=divmod(x,2)
- s=str(b)+s
- s='1'+s
- print('0b'+s)
这里刚学异常处理就用了一下
- #输入年份
- while True:
- try:
- year=eval(input("请输入一个年份\n"))
- break
- except:
- print("输入有错")
-
- if year%4==0 and year%100!=0:
- print("闰年")
- elif year%400==0:
- print("闰年")
- else:
- print("不是闰年")
- a=eval(input("输入第一个数字"))
- b=eval(input("输入第二个数字"))
- if a<b:
- a,b=b,a
- c=a*b
- while a%b!=0:
- a,b=b,a%b
- print(b)
- print(int(c/b))
- s=input("请输入一个字符串")
- eng=0
- num=0
- back=0
- other=0
- for c in s:
- if (c>='a' and c<='z')or \
- (c>='A' and c<='Z'):
- eng+=1
- elif c>='0' and c<='9':
- num+=1
- elif c==' ':
- back+=1
- else:
- other+=1
- print(eng,num,back,other)
正好在4.1里面试了一下异常处理,可以参考4.1
这道题目还是挺有意思的,可是我英语不太好,变量的名字取的不太好,right是坚持选择猜对的次数,right2是改变选择猜对的次数,god是主持人开启的另外一扇门要求既不能是参赛者猜的那扇也不能是车子那扇,6-choice-god==car左边表达的是参赛者改变选择后所选的门,6代表的是1+2+3=6
- import random
- right=0
- right2=0
- j=10000
- for i in range(j):
- car=random.randint(1,3)
- choice=random.randint(1,3)
- if car==choice:
- right+=1
- while True:
- god=random.randint(1,3)
- if god!=car and god!=choice:
- break
- if 6-choice-god==car:
- right2+=1
- print("{:.2%}".format(right/j))
- print("{:.2%}".format(right2/j))
- def isNum(str):
- try:
- str=eval(str)
- if type(str)==type(10) \
- or type(str)==type(1.0) \
- or type(str)==type(1+1j):
- return True
- else:
- return False
- except:
- return False
- f=isNum('123')
- print(f)
- def isPrime(i):
- try:
- for j in range(2,i):
- if i%j==0:
- return False
- return True
- except:
- print('请输入整数')
- print(isPrime(12))
这道题跟4.3是一样的,不同的是要封装成函数
- def counts(str):
- num,ch,back,oth=0,0,0,0
- for c in str:
- if c>='0' and c<='9':
- num+=1
- elif (c>='a' and c<='z') \
- or (c>='A' and c<='Z'):
- ch+=1
- elif c==' ':
- back+=1
- else:
- oth+=1
- return num,ch,back,oth
- a=counts("dkjfi3943;[34p[3. 3j43. 34. 3kjk[[[p")
- print(a)
这道题完全可以用5.2的函数来继续做,利用5.2的判断选择打印或者不打印
- def prime(num):
- for i in range(2,num+1):
- flag=True
- for j in range(2,i):
- if i%j==0:
- flag=False
- break
- if flag:
- print(i,end=' ')
- prime(200)
我一直觉得递归很有技巧性,可是我并不觉得递归好用,如果你写的代码用了递归,我不觉得会简洁清晰而舒服,反而有时候会感觉并不是很直观
- def fib(num):
- if num==1 or num==2:
- return 1
- return fib(num-1)+fib(num-2)
-
- print(fib(9))
这个不仅可以对英文字符进行统计,可以对任何字符进行统计
- str='kdjfierjkemfkdjfiek中肿中V工r‘\'\'’na;akdfqpeirAJSKJDIWunn v'
- str=str.lower()
- strdict={}
- for c in str:
- #if c>='a' and c<='z':
- strdict[c]=strdict.get(c,0)+1
- strlist=list(strdict.items())
- strlist.sort(key=lambda x:x[1],reverse=True)
- for i in range(len(strlist)):
- print("{0:<10}{1:>10}".format(strlist[i][0],strlist[i][1]))
参考上一题
先生成列表l,再利用随机数生成密码,10个8位用两个循环嵌套就可以了,但是要注意在代码里我用了一个passwd.copy()把副本添加到密码列表里,是因为如果直接把passwd放到passwds里的话,会导致放进去的是一个地址引用,导致passwds里面的10个密码都是一样的
- import random
- l=list()
- passwds=[]
- passwd=[]
- i=ord('0')
- while i<=ord('z'):
- l.append(chr(i))
- i+=1
- if chr(i-1)=="Z":
- i=ord('a')
- elif chr(i-1)=='9':
- i=ord('A')
-
- for ii in range(10):
- for j in range(8):
- ran=random.randint(0,len(l)-1)
- passwd.append(l[ran])
- #print(passwd)
- passwds.append(passwd.copy())
- passwd.clear()
- for items in passwds:
- for item in items:
- print(item,end='')
- print('\n')
我用的第一种方法(注释部分)比较麻烦,通过lis.count()来判断,而且不知道为什么我用了一个字典来存放bool值,好像是一开始我对题目的理解有问题,我一开始认为重复元素也要返回。
第二种方法相对比较简单,直接转化成集合,利用集合的不重复特点,判断长度是否变小了
- # def repeat(lis=[]):
- # dics={}
- # for li in lis:
- # if lis.count(li)>1:
- # dics[li]=True
- # else:
- # dics[li]=False
- # return dics
-
- # lism=['d','e','b','d',';','3',';',9,3,9]
- # dicsm=repeat(lism)
- # print(dicsm)
- # print(lism)
- def repeat(lis=[]):
- sets=set(lis)
- if len(sets)==len(lis):
- return False
- return True
-
- lism=['d','e','b','3',';',9,3,3]
- dicsm=repeat(lism)
- print(dicsm)
参考上一题
- def cInTxt(filename,char):
- count=0
- fo=open(filename,'r')
- txt=fo.read()
- txt=txt.lower()
- for word in txt:
- if char==word:
- count+=1
- fo.close()
- return count
-
- print(cInTxt('Hamlet.TXT','t'))
在网上下了一个哈姆雷特的英文版放在同一个文件夹里,然后学习了一下模块化,分成了三个模块
- def readfile(filename):
- fo=open(filename,'r')
- txt=fo.read()
- fo.close()
- return txt
-
- def chg(txt):
- newtxt=''
- for char in txt:
- if 'a'<=char<="z":
- newtxt+=chr(ord(char)-32)
- elif 'A'<=char<='Z':
- newtxt+=chr(ord(char)+32)
- else:
- newtxt+=char
- return newtxt
- def writefile(filename,txt):
- fw=open(filename,'w')
- fw.write(txt)
- fw.close()
-
- txt=readfile("Hamlet.TXT")
- newtxt=chg(txt)
- writefile("123.txt",newtxt)
按照题目要求好像是要编写两个程序,第一个程序生成了一个文本文件,第二个程序我用了一个import re这里是引用了一个正则表达式,目的是在第一个程序中为了对齐增加的多个空格变成一个空格
- import random
- fw=open("7.3.txt",'w')
- for i in range(10):
- for j in range(10):
- rand=random.randint(1,1000)
- if j==9:
- fw.write("{:<}".format(str(rand))+'\n')
- else:
- fw.write("{:<5}".format(str(rand)+' '))
- fw.close()
- fr=open("7.3.txt",'r')
- txt=fr.read()
- import re
- txt=re.sub(' +',' ',txt)
- fw=open("7.3.csv",'w')
- fw.write(txt.replace(' ',','))
-
-
-
- fw.close()
- fr.close()
我觉得这道题目很难理解,如果只把保留字不变的话,是不可能完成的,很多内置函数会因为大小写改变而无法运行,而那么多内置函数,还有一些参数也不能改变大小写,比如读取文件的open(' ','r')中的r也不能改变,所有要写一个万能的可能不太好做,或者我的理解有偏差,这里我仅改变上一题中的第二部分的程序
- # theword={'and','as','break','continue','def','del','elif',\
- # 'else','except','False','for','global','if','import','in',\
- # 'is','lambda','not','or','return','True','try','while'}
-
- import keyword
- #import re
- s=keyword.kwlist
- s+=[' re','re.','sub','csv','open','close','txt','read',"'r'",'import',\
- 'write','replace',"'w'"]
- fr=open('7.3.2.py','r')
- newtxt=txt=fr.read()
- fr.close()
- newtxt=newtxt.upper()
- print(newtxt)
- for word in s:
- if word.upper() in newtxt:
- newtxt=newtxt.replace(word.upper(),word)
- print(newtxt)
- fw=open("7.4.1.py",'w')
- fw.write(newtxt)
- fw.close()
- # for c in txt:
- # if not ('a'<=c<='z' or 'A'<=c<='Z'):
- # newtxt=newtxt.replace(c,' ')
- # #newtxt=re.sub(' +',' ',newtxt)
- # newtxt=set(newtxt.split())
- # print(newtxt)
- # print(s)
改变前的程序
- fr=open("7.3.txt",'r')
- txt=fr.read()
- import re
- txt=re.sub(' +',' ',txt)
- fw=open("7.3.csv",'w')
- fw.write(txt.replace(' ',','))
-
-
-
- fw.close()
- fr.close()
改变后的程序
- FR=open("7.3.txt",'r')
- txt=FR.read()
- import re
- txt=re.sub(' +',' ',txt)
- FW=open("7.3.csv",'w')
- FW.write(txt.replace(' ',','))
-
-
-
- FW.close()
- FR.close()
这道题不太好理解,首先要把任意类型的转存成csv的话,任意类型都要转变成字符串,所以需要另外保留该类型的标志,以便后面从csv转换回来的时候可以知道类型。
我是先学完第十章第十一章,才学的这一章的,所以对题目关于第三方库方面的可能已经有一点了解了
之前做过同样的题目,唯一不同的是这里用了自顶向下设计的模块化编程
- def main():
- year=getYear()
- flag=isRun(year)
- printRun(flag)
-
- def getYear():
- while True:
- try:
- year=eval(input("请输入一个年份\n"))
- return year
- except:
- print("请输入一个整数\n")
-
- def isRun(year):
- if year%4==0 and year%100!=0:
- return True
- elif year%400==0:
- return True
- else:
- return False
-
- def printRun(flag):
- if flag:
- print("闰年")
- else:
- print("不是闰年")
-
- main()
原来上学的时候其实有了解过html的内容,可是没有学的很深入,这里的标签还好理解,可是怎么理解标签中的内容呢?
可以参考下一题,用beautifulsoup4来做,当然也可以按照自己的理解做
这道题我参考了网上的一些内容,做了一个比较简单的抓取图片的爬虫,网上有很多抓取美女图片的爬虫教程,大家可以看一下,我主要用到了requests库,beautifulsoup4库,os库,requests主要是访问网站的,beautifulsoup4主要用来处理html文档的,os库在这里我用来判断文件是否存在。
这里有几个点需要注意一下:1、在代码注释中有解释headers的用处,主要是headers中的referer,因为访问图片的时候用到这个,如果没有这个参数,就会访问到另外一个图片
2、r.encoding那句是防止乱码,这也是一开始踩到的坑,后来查了下资料,才知道这个问题3、range(200)是下载200张图片
4、判断文件是否存在,是因为每次都从第一张图片开始下载,很浪费,所以先判断当前图片是不是已经下载过了,再下载
5、这里主要学到了requests库,beautifulsoup4库,os库的相关知识,参考了一些网站,内容比较........
- import requests
- from bs4 import BeautifulSoup
- import os
- #如果没有headers 可能会因为反爬虫而无法爬取到想要的图片
- headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.1 Safari/605.1.15','Referer': 'https://m.mm131.net/'}
- r=requests.get("https://m.mm131.net",headers=headers)
- r.encoding='gb2312' #没有这句会乱码
- soup=BeautifulSoup(r.text,'lxml')
- html=soup.find('content',id='content').find('a',class_='post-title-link')['href']
- #for html in htmls:
- for i in range(200):
- img_req=requests.get(html,headers=headers)
- img_req.encoding='gb2312'
- img_soup=BeautifulSoup(img_req.text,'lxml')
- img_html=img_soup.find('content',id='content').find('img')
- print(img_html['src'])
- img_name=img_html['alt']+'.jpg'
- img_path='/Users/chenpeng/Desktop/图片/'
- if not os.path.exists(img_path+img_name):
- down_req=requests.get(img_html['src'],headers=headers)
- f=open(img_path+img_name,'wb')
- f.write(down_req.content)
- f.close()
- else:
- print("{}图片已下载".format(img_name))
- html='https://m.mm131.net/xinggan/'+img_soup.find('content',id='content').find('a')['href']
自顶向下的设计
- import re
- def getText():
- txt=open("Hamlet.TXT","r").read()
- txt=txt.lower()
- for c in txt:
- if (c>='a' and c<='z'):
- continue
- else:
- txt=txt.replace(c,' ')
- txt=re.sub(' +',' ',txt) #正则表达式
- return txt
-
- def dealtxt(txt):
- txtlist=txt.split(' ')
- for k in txtlist:
- txtdict[k]=txtdict.get(k,0)+1
- return txtlist
-
- def sorttxt(txtlist):
- newtxtl=list(txtdict.items())
- newtxtl.sort(key=lambda x:x[1],reverse=True)
- return newtxtl
-
- def showtxt(newtxtl,num):
- for i in range(num):
- print("{0:<15}{1:>10}".format(newtxtl[i][0],newtxtl[i][1]))
-
- def main():
- txt=getText()
- txtlist=dealtxt(txt)
- newtxtl=sorttxt(txtlist)
- showtxt(newtxtl,10)
-
- txtdict={}
- main()
这道题可以参考后面第十章的题目,但是有几个地方不太明白,按照上题词频分析,最多的应该是the才对,可是看到词云,并不是这样的结果,参考了网上的一些内容,了解到“词云图过滤掉大量的低频低质的文本信息”
- from wordcloud import WordCloud
- import imageio
- f=open('Hamlet.TXT','r')
- txt=f.read()
- f.close()
- mask=imageio.imread("13.jpeg")
- wordcloud=WordCloud(width=800,height=600,mask=mask).generate(txt)
- wordcloud.to_file("1.png")
这里的蜂窝状,我理解的就是多个六边形组合起来,就像蜂窝一样,遇到了一些问题,写在了代码的备注中了,整体思路就是先完成一个六边形的绘制,然后找到这个六边形旁边一圈六边形的绘制坐标,然后开始画旁边一圈六边形
- from turtle import *
-
- #画一个六边形
- def onesix(l,x,y):
- penup()
- goto(x,y)
- pendown()
- begin_fill()
- circle(l,steps=6)
- color('black','orange')
- end_fill()
- #画r圈六边形
- def rsix(l,r):
- xyset=set()
- findxy(r,xyset)
- for x,y in xyset:
- onesix(l,x,y)
-
- #找到r圈六边形中每个六边形的xy坐标
- #数据用集合是因为不重复
- def findxy(r,xyset=set()):
- x,y=0,0
- xyset.add((x,y))
- for i in range(r):
- xyempty=set()
- for x,y in xyset:
- xyempty.add((x+(3**0.5)*l,y))
- xyempty.add((-x-(3**0.5)*l,y))
- xyempty.add((x+(3**0.5)*l/2,y+3*l/2))
- xyempty.add((-x-(3**0.5)*l/2,y+3*l/2))
- xyempty.add((x+(3**0.5)*l/2,-y-3*l/2))
- xyempty.add((-x-(3**0.5)*l/2,-y-3*l/2))
- xyset|=xyempty
-
- #tracer(False) #不要动画,不知道为什么用了这句语句后,最后一笔总是写不了,有个六边形会少一个边
- speed(100)#速度会很慢
- hideturtle()
- l=20 #一个六边形的边的长度
- r=6 #蜂窝的圈数
- rsix(l,r)
- done()
出题的人是认真的吗?
查了一下网上的资料,网上有代码,这里我就不画了。
可以用上面9.1的题目,然后在填充颜色的时候,用不同的颜色,这道题对上面9.1做了部分优化,画图的速度变快,不会重复画了
- from turtle import *
- import random
- #画一个六边形
- def onesix(l,x,y):
- penup()
- goto(x,y)
- pendown()
- begin_fill()
- circle(l,steps=6)
- rgb=colorrgb()
- color('black',rgb)
- end_fill()
-
- #产生颜色的随机数
- def colorrgb():
- r=random.random()
- g=random.random()
- b=random.random()
- return (r,g,b)
-
- #画r圈六边形
- def rsix(l,r):
- xyset=set()
- findxy(r,xyset)
- print(xyset)
- for x,y in xyset:
- onesix(l,x,y)
-
- #找到r圈六边形中每个六边形的xy坐标
- #数据用集合是因为不重复
- def findxy(r,xyset=set()):
- x,y=0,0
- xyset.add((x,y))
- for i in range(r):
- xyempty=set()
- for x,y in xyset:
- #这里用到了round函数是因为如果不取小数,最后会因为计算的基数不同,两个相同的坐标得出来的值不同
- #虽然图的结果差不多,可是会导致集合有重复元素,而导致重复画一个六边形,就像
- #51.939439493943901 51.9394394939439
- xyempty.add((round(x+(3**0.5)*l,10),round(y,10)))
- xyempty.add((round(-x-(3**0.5)*l,10),round(y,10)))
- xyempty.add((round(x+(3**0.5)*l/2,10),round(y+3*l/2,10)))
- xyempty.add((round(-x-(3**0.5)*l/2,10),round(y+3*l/2,10)))
- xyempty.add((round(x+(3**0.5)*l/2,10),round(-y-3*l/2,10)))
- xyempty.add((round(-x-(3**0.5)*l/2,10),round(-y-3*l/2,10)))
- xyset|=xyempty
-
- #tracer(False) #不要动画,不知道为什么用了这句语句后,最后一笔总是写不了,有个六边形会少一个边
- speed(100)#速度会很慢
- hideturtle()
- l=20 #一个六边形的边的长度
- r=6 #蜂窝的圈数
- rsix(l,r)
- done()
我不确定是不是我对这道题目理解有问题,是不是太简单了
- import random
- l=[]
- for i in range(10):
- l.append(random.randint(0,100))
- print(l)
这里有个问题是日期中4号显示的是04,可是题目中没有前面这个0
- import time
- print(time.strftime('%A,%d.%B %Y %I:%M%p',time.localtime()))
这道题用的cut方法教材上没有讲,教材上用的是lcut方法,直接返回列表类型,通过查阅资料,了解了cut方法返回的是迭代器类型,需要转换为列表类型,否则无法输出
- import jieba
- s="Python是最有意思的编程语言"
- l=jieba.cut(s)
- l=list(l)
- print(l)
下面是我做的一些测试,可以看到使用type方法查看迭代器类型的时候返回的是generator,查询资料了解这是迭代器的一种特殊类型,可以使用next方法,就像pop一样,拿一个出来就少一个,所以最后转换成列表的时候,只剩下两个元素了。
- import jieba
- s="Python是最有意思的编程语言"
- l=jieba.cut(s)#
- print(type(l))
- print(next(l))
- print(next(l))
- print(next(l))
- print(next(l))
- l=list(l)
- print(l)
- import jieba
- s="今天晚上我吃了意大利面"
- jieba.add_word("意大利面")
- print(list(jieba.cut(s)))
在网上找了一篇丘吉尔的演讲稿,只是结果有点尴尬,后来又看了下教材,原来教材上有一段判断是否是一个字,如果是单字的话就直接过滤了,后面我也添加了
- import jieba
- fr=open("1.txt",'r')
- txt=fr.read()
- wordl=jieba.lcut(txt)
- count={}
- for word in wordl:
- count[word]=count.get(word,0)+1
- countl=list(count.items())
- countl.sort(key=lambda x:x[1],reverse=True)
- for i in range(5):
- print(countl[i])
- #print(wordl)
- import jieba
- fr=open("1.txt",'r')
- txt=fr.read()
- wordl=jieba.lcut(txt)
- count={}
- for word in wordl:
- if len(word)==1:
- continue
- count[word]=count.get(word,0)+1
- countl=list(count.items())
- countl.sort(key=lambda x:x[1],reverse=True)
- for i in range(5):
- print(countl[i])
- #print(wordl)
在网上下载了一个射雕英雄传的txt文档,进行词频分析,基本按照教材上例题地讲解
- import jieba
- fr=open("shediaoyingxiongchuan_jinyong.txt",'r')
- excludes=['甚么','说道','一个','自己','师傅','心中','武功','两人',\
- '咱们','一声','只见','不知','他们','不是','黄蓉道','郭靖道',\
- '功夫','师父','知道','不敢','原来','出来','之中','爹爹','这时','当下','心想','只是']
- txt=fr.read()
- wordl=jieba.lcut(txt)
- count={}
- for word in wordl:
- if len(word)==1:
- continue
- count[word]=count.get(word,0)+1
- for word in excludes:
- del(count[word])
- countl=list(count.items())
- countl.sort(key=lambda x:x[1],reverse=True)
- for i in range(10):
- print(countl[i])
- fr.close()
这里有几点要注意:1、词云会自动过滤单个字,不像jieba
2、教材例题alice梦游仙境中的 from scipy.misc import imread 会出错,查阅资料,可能是因为以后不再提供这个功能,建议使用imageio.imread
3、使用的背影图片,一开始使用的是没有背景的png图片,发现没有效果,查阅资料,改用背景为白色的图片,有效果,猜测可能和词云中背影颜色有关系
4、这里的背景图片采用的是网上的一个例子
- import jieba
- from wordcloud import WordCloud
- import imageio
-
- fr=open("shediaoyingxiongchuan_jinyong.txt",'r')
- excludes=['甚么','说道','一个','自己','师傅','心中','武功','两人',\
- '咱们','一声','只见','不知','他们','不是','黄蓉道','郭靖道',\
- '功夫','师父','知道','不敢','原来','出来','之中','爹爹','这时','当下','心想','只是']
- txt=fr.read()
- wordl=jieba.lcut(txt)
-
- mask=imageio.imread('13.jpeg')
- newtxt=' '.join(wordl)
- wordcloud=WordCloud(background_color='white',\
- font_path='2.ttf',\
- max_font_size=100,\
- stopwords=excludes,\
- mask=mask,\
- ).generate(newtxt)
- wordcloud.to_file('1.png')
- fr.close()
作者:38373
链接:https://www.pythonheidong.com/blog/article/48928/d999a34cdf94f9cf13a6/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!