zoukankan      html  css  js  c++  java
  • python编程

    课后练习:

    结果:

    结果:

     拓展练习:

    1. 从键盘输入整数 n(1-9 之间),对于 1-100 之间的整数删除包含 n 并且能被 n 整除的 数,例如如果 n 为 6,则要删掉包含 6 的如 6,16 这样的数及是 6 的倍数的如 12 和 18 这 样的数,输出所有满足条件的数,要求每满 10 个数换行。

    测试数据: Enter the number: 6

    屏幕输出:

    代码:

     1 counter=0
     2 n=int(input())
     3 StrN=str(n)
     4 for i in range(1,101):
     5     Str=str(i)
     6     if(i%n!=0 and StrN not in Str ):
     7         if(counter != 9):
     8             print (i,end=',')
     9             counter+=1
    10         else:
    11             print(i)
    12             counter=0

    输出结果:

    2. 请用随机函数产生 500 行 1-100 之间的随机整数存入文件 random.txt 中,编程寻找这 些整数的众数并输出,众数即为一组数中出现最多的数。

     1 import random
     2 counter=0
     3 List=[]
     4 with open('random.txt','w')as f:
     5     while(counter!=500):
     6         n=random.randint(0,100)
     7         f.writelines(str(n)+'
    ')
     8         List.append(n)
     9         counter+=1
    10 maxnum=max(List.count(x) for x in set(List))
    11 for x in set(List):
    12     if(maxnum==List.count(x)):
    13         print(x)

    运行结果:

     

    3. 文件 article.txt 中存放了一篇英文文章(请自行创建并添加测试文本),假设文章中的 标点符号仅包括“,”、“.”、“!”、“?”和“…”,编程找出其中最长的单词并输出

    字符串中的split函数只能用一个符号分割字符。re模块中的split可以用多个符号分割字符,因此注意导入re模块。

    1 import re
    2 with open('article.txt','r')as f:
    3     Str=f.read()
    4 List=re.split(' |?|!|,|.{1,3}',Str)
    5 print(List)
    6 maxlength=max(len(x) for x in set(List))
    7 for x in set(List):
    8     if len(x)==maxlength:
    9         print(x)

    输入文件的内容:

    aaa,bb,c.good!?emm mmm...thisistheanswer.

    输出结果:

    爬虫小实验:

    爬虫进阶练习:

    1. “迷你爬虫编程小练习”进阶:抽取某本书的前 50 条短评内容并计算评分(star)的平
    均值。提示:有的评论中并不包含评分。

    没有评分的情况如下图所示:

    (注:以下是Dazhuang老师的代码

     1 import requests,re,time
     2 from bs4 import BeautifulSoup
     3 
     4 count=0  
     5 i=0   #页数
     6 s,count_s,count_del=0,0,0
     7 lst_stars=[]
     8 while count<50:
     9     try:
    10         r=requests.get('https://book.douban.com/subject/26943161/comments/hot?p='+str(i+1))
    11     except Exception as err:
    12         print(err)
    13         break
    14     soup=BeautifulSoup(r.text,'lxml')
    15     comments=soup.find_all('span','short')  #直接取得评论
    16     
    17     pattern=re.compile('<span class="user-stars allstar(.*?)rating"')
    18     p=re.findall(pattern,r.text)
    19     for item in comments:
    20         count+=1
    21         if(count>50):
    22             count_del+=1  #超出50条记录的部分
    23         else:
    24             print(count,item.string)
    25             
    26     for star in p:
    27         lst_stars.append(int(star))
    28         
    29     time.sleep(5)
    30     i+=1  #更新页数
    31     
    32 for star in lst_stars[:-count_del]:
    33     s+=int(star)
    34 print(s//(len(lst_stars)-count_del))

    2. 在“http://money.cnn.com/data/dow30/”上抓取道指成分股数据并将 30 家公司
    的代码、公司名称和最近一次成交价放到一个列表中输出。

     1 import requests
     2 import re
     3 
     4 def retrieve():
     5     r=requests.get('http://money.cnn.com/data/dow30/')
     6     pattern=re.compile('class="wsod_symbol">(.*?)</a>.*?<span.*?">(.*?)</span>.*?
    .*?class="wsod_stream">(.*?)</span>')
     7     List = re.findall(pattern,r.text)
     8     return List
     9 
    10 alist=retrieve()
    11 print(alist)


    3. 请爬取网页(http://www.volleyball.world/en/vnl/women/results-and
    ranking/round1)上的数据(包括 TEAMS and TOTAL, WON, LOST of MATCHES)
     提示:在处理时可以用已学的方法将每一项需要的内容(如 USA 和 15)单独解析 出来,但这种做法将有联系的数据打散了,较好的做法是将每个 TEAM 的相关数据按 组解析出来。但是由于包含这 4 项信息的源代码(请自行观察)分在多行,所以在处 理时可以通过设置 flags 参数以多行模式来解决这个问题(形如 pattern = re.compile(…, flags=re.M) ) , 并且在构造正则表达式时要把换行时的空白字符表示出来(用s+可表 示多个空白字符)。

    正则表达式补充知识:

    若没有re.M,且没有^与$,正则表达式默认匹配多行(如6)。

  • 相关阅读:
    复合索引的列顺序判断
    sqlserver 存储过程中使用临时表到底会不会导致重编译
    Sql Server参数化查询之where in和like实现详解
    浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
    SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别
    通过手动创建统计信息优化sql查询性能案例
    SQL Server 并行操作优化,避免并行操作被抑制而影响SQL的执行效率
    SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)
    C#实现文件数据库
    ASP.NET DropDownList1_SelectedIndexChanged使用
  • 原文地址:https://www.cnblogs.com/cellphone7/p/9750722.html
Copyright © 2011-2022 走看看