鱼C论坛

 找回密码
 立即注册
查看: 1862|回复: 12

[已解决]python

[复制链接]
发表于 2021-8-25 23:36:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
n = 0
m = 0
f = open("univ.txt", "r")
lines = f.readlines()
f.close()
for line in lines:
    line = line.replace("\n","")
    if '大学生' in line:
        continue
    elif '学院' in line:
        print('{}'.format(line))
        m += 1
    elif '大学' in line:
        print('{}'.format(line))
        n += 1
print("包含大学的名称数量是{}".format(n))
print("包含学院的名称数量是{}".format(m))



fi = open('univ.txt','r')
d = {}
m = 0#大学
n = 0#学院
for line in fi:
    line = line.replace('\n','')
    if  '大学生' not in line:
        if '大学' in line:
            m = m + 1
            print(line)
        if '学院' in line:
            n = n + 1
            print(line)
print("包含大学的名称数量是{}".format(m))
print("包含学院的名称数量是{}".format(n))






为啥这两个答案不一样?
最佳答案
2021-8-26 16:46:23
目测是分支语句的使用方法不同
第一种相当于三选一  一次循环里  if  elif  elif  三个只会执行其中一个,只执行第一个为真的 然后跳出分支语句   (建议最后加个else处理其他情况)
第二种 每次循环中    如果line里没有'大学生'   就继续执行里面的语句  但它会先执行'大学'的判断 再执行'学院'的判断  即每次两个都会判断
下面举例:
有这样两行内容:   
   ***1大学***2学院
   ***1学院
   ***1大学
第一个程序:
第一行      无‘大学生’ ,即if 0 →  有‘学院’,即 if 1 执行里面语句 →跳出分支,此时应该m=1,n=0
第二行      无‘大学生’ ,即if 0 →  有‘学院’,即 if 1 执行里面语句 →跳出分支,此时应该m=2,n=0
第三行      无‘大学生’ ,即if 0 →  无‘学院’,即 if 0 → 有‘大学’,即if 1    执行里面语句 →跳出分支,此时应该m=2,n=1

第二个程序:
第一行      无‘大学生’ ,即if 1 →  有‘大学’,m+1 → 有‘学院’,n+1          m=1,n=1
第二行      无‘大学生’ ,即if 1 →  无’大学‘           → 有‘学院’,n+1         m=1,n=2
第三行      无‘大学生’ ,即if 1 →  有‘大学’,m+1 → 无’学院‘                  m=2,n=2

问题肯定在分支语句里  我只口头分析   有错误欢迎指正    可以肯定的是运行结果第二种必定大于等于第一种
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-8-26 07:46:56 | 显示全部楼层
发一下结果以及你文件的内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-26 08:12:43 | 显示全部楼层
如果一行中既有大学又有学院,程序1两者都统计,程序2只统计到学院中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-26 16:46:23 | 显示全部楼层    本楼为最佳答案   
目测是分支语句的使用方法不同
第一种相当于三选一  一次循环里  if  elif  elif  三个只会执行其中一个,只执行第一个为真的 然后跳出分支语句   (建议最后加个else处理其他情况)
第二种 每次循环中    如果line里没有'大学生'   就继续执行里面的语句  但它会先执行'大学'的判断 再执行'学院'的判断  即每次两个都会判断
下面举例:
有这样两行内容:   
   ***1大学***2学院
   ***1学院
   ***1大学
第一个程序:
第一行      无‘大学生’ ,即if 0 →  有‘学院’,即 if 1 执行里面语句 →跳出分支,此时应该m=1,n=0
第二行      无‘大学生’ ,即if 0 →  有‘学院’,即 if 1 执行里面语句 →跳出分支,此时应该m=2,n=0
第三行      无‘大学生’ ,即if 0 →  无‘学院’,即 if 0 → 有‘大学’,即if 1    执行里面语句 →跳出分支,此时应该m=2,n=1

第二个程序:
第一行      无‘大学生’ ,即if 1 →  有‘大学’,m+1 → 有‘学院’,n+1          m=1,n=1
第二行      无‘大学生’ ,即if 1 →  无’大学‘           → 有‘学院’,n+1         m=1,n=2
第三行      无‘大学生’ ,即if 1 →  有‘大学’,m+1 → 无’学院‘                  m=2,n=2

问题肯定在分支语句里  我只口头分析   有错误欢迎指正    可以肯定的是运行结果第二种必定大于等于第一种
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 17:05:18 | 显示全部楼层
北京大学
南京大学
浙江大学
复旦大学
北京航空航天大学
武汉大学
北京理工大学
中国农业大学
北京师范大学
中央民族大学
南开大学
天津大学
大连理工大学
吉林大学
哈尔滨工业大学
东北大学
同济大学
上海交通大学
华东师范大学
中国人民大学
东南大学
北京林业大学
中国科学技术大学
厦门大学
山东大学
中国海洋大学
华中科技大学
湖南大学
中南大学
国防科技大学
中山大学
华南理工大学
四川大学
重庆大学
电子科技大学
西安交通大学
西北工业大学
西北农林科技大学
兰州大学
台湾新竹“清华大学”
台湾新竹“交通大学”
台北医学大学
慈济大学
中原大学
广州大学
北京交通大学
北京工业大学
北京科技大学
北京化工大学
中国传媒大学
北京邮电大学
北京协和医学院
首都经济贸易大学
北京中医药大学
首都师范大学
首都体育学院
北京外国语大学
北京体育大学
北京语言大学
中央财经大学
对外经济贸易大学
国际关系学院
中央音乐学院
中国音乐学院
中国政法大学
华北电力大学
华北电力大学(保定)
中国石油大学(北京)
天津师范大学
河北科技大学
河北师范大学
保定学院
山西大学
太原理工大学
内蒙古大学
沈阳工业大学
大连海事大学
中国医科大学
渤海大学
沈阳师范大学
东北财经大学
东北师范大学
通化师范学院
黑龙江大学
哈尔滨工程大学
哈尔滨师范大学
上海大学
东华大学
华东理工大学
上海对外经贸大学
上海外国语大学
上海财经大学
上海体育学院
苏州大学
南京航空航天大学
南京理工大学
南京邮电大学
河海大学
南京农业大学
南京中医药大学
中国药科大学
中国人民解放军陆军工程大学
南京师范大学
江苏大学
杭州电子科技大学
浙江工业大学
浙江理工大学
杭州师范大学
温州大学
宁波大学
浙江工商大学
华侨大学
福州大学
福建农林大学
集美大学
福建师范大学
南昌大学
华东交通大学
江西师范大学
江西财经大学
中国石油大学(华东)
青岛科技大学
郑州大学
山东中医药大学
河南大学
武汉科技大学
中国地质大学(武汉)
武汉理工大学
华中农业大学
华中师范大学
湖北大学
中南财经政法大学
湖南农业大学
湖南师范大学
衡阳师范学院
长沙师范学院
暨南大学
广东技术师范学院
深圳大学
桂林电子科技大学
桂林理工大学
广西师范学院
广西民族大学
西南交通大学
西南石油大学
成都信息工程大学
成都中医药大学
西南大学
四川师范大学
西南财经大学
西南政法大学
成都工业学院
江苏师范大学
云南大学
昆明理工大学
云南师范大学
西北大学
西安理工大学
西安电子科技大学
西安工业大学
陕西科技大学
西安工程大学
长安大学
陕西师范大学
西安外国语大学
第四军医大学
西安邮电大学
兰州交通大学
河西学院
上海工程技术大学
浙江万里学院
金陵科技学院
长沙学院
成都大学
中国人民警察大学
大连大学
中国矿业大学(北京)
北京联合大学
浙江财经大学
湖北经济学院
重庆工商大学
湖南第一师范学院
南昌工学院
台湾云林科技大学
国家开放大学
中国社会科学院大学
贵州理工学院
温州医科大学
北京现代音乐研修学院
长江大学
上海师范大学
湘潭大学
河北机电职业技术学院
浙江安防职业技术学院
上海工艺美术职业学院
山东职业学院
九江职业技术学院
天津医科大学
南京特殊教育师范学院
南京审计大学
南京信息职业技术学院
安阳工学院
河南科技大学
河南农业大学
海南师范大学
海南经贸职业技术学院
河北医科大学
高等教育出版社
职教MOOC建设委员会
微软
中国教育学会
湖北长江互联网教育研究院
全国大学生数学建模竞赛组织委员会
全国高等学校学生信息咨询与就业指导中心
图书馆(学)在线课程联盟
哈索 普拉特纳研究院
deeplearning.ai
四川计算机学会
中科院软件所-重德智能机器人联合研究中心
兄弟连教育
文安智能
爱课程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 17:08:50 | 显示全部楼层
冬雪雪冬 发表于 2021-8-26 08:12
如果一行中既有大学又有学院,程序1两者都统计,程序2只统计到学院中

那为啥我的只统计到学院里呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-26 17:13:06 | 显示全部楼层
赵从文芜湖123 发表于 2021-8-26 17:08
那为啥我的只统计到学院里呢?

因为你的样本中没有既有大学又有学院的名字,比如XX大学理学院
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 17:13:29 | 显示全部楼层
YaoShi 发表于 2021-8-26 16:46
目测是分支语句的使用方法不同
第一种相当于三选一  一次循环里  if  elif  elif  三个只会执行其中一个, ...

为什么第一种,能够跳出分支。
而第二种,继续执行呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 17:20:10 | 显示全部楼层
冬雪雪冬 发表于 2021-8-26 17:13
因为你的样本中没有既有大学又有学院的名字,比如XX大学理学院

中国社会科学院大学 有的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 17:23:42 | 显示全部楼层
冬雪雪冬 发表于 2021-8-26 08:12
如果一行中既有大学又有学院,程序1两者都统计,程序2只统计到学院中

for i in range(10):
        if 0:
                print(2)
        elif 1:
                print(3)
        elif 2:
                print(4)
3
3
3
3
3
3
3
3
3
3




for i in range(10):
        if 1:
                print(2)
        if 1:
                print(3)

               
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3

我稍微试了试,我感觉第一种是大学和学院都有的,只统计一种,第二种是两者都统计。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 17:33:06 | 显示全部楼层
请编写程序,从univ.txt文件中提取大学名称,大学名称以出现“大学”或“学院”字样为参考,但不包括“大学生”等字样。将所有大学名称在屏幕上输出,大学各行之间没有空行,最后给出名称中包含“大学”和“学院”的名称数量,同时包含“大学”和“学院”的名称以结尾的词作为其类型。第一个是答案,这样看起来好像答案有点问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-26 20:53:54 | 显示全部楼层
赵从文芜湖123 发表于 2021-8-26 17:13
为什么第一种,能够跳出分支。
而第二种,继续执行呢?

这还是你自己去复习一下分支语句体会更深   网上这种资料还不好找吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-28 16:58:43 | 显示全部楼层
YaoShi 发表于 2021-8-26 20:53
这还是你自己去复习一下分支语句体会更深   网上这种资料还不好找吗

嗯,我现在明白了,谢谢啦。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 09:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表