设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

集中答疑专用贴

  [复制链接]

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

266#
发表于 2018-1-10 17:02:17 |只看该作者
Reine 发表于 2018-1-10 16:54
一语惊醒梦中人,谢谢老师!

我不是老师  不敢当哈
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

265#
发表于 2018-1-10 16:54:18 来自手机 |只看该作者
TED 发表于 2018-1-10 16:39
首先munber应该是number哈,和英文单词一致些也好用(不影响程序)

代码错误有两处,一是for i inrange( ...

一语惊醒梦中人,谢谢老师!
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

264#
发表于 2018-1-10 16:39:25 |只看该作者
Reine 发表于 2018-1-10 15:10
老师您好,我是看了您的入门课程后自学Python简明教程,在输入与输出这一章遇到了问题,前来请教。

Python ...

首先munber应该是number哈,和英文单词一致些也好用(不影响程序)

代码错误有两处,一是for i inrange(0,number)就好了,不要再-1;二是匹配到特殊符号时,直接删除元素,导致something的长度也-1了,而for循环还是用的原长度,就会导致index超出范围

你第一次测试时,something的长度是8,number=8, for i in range(0,number)是i=0-7可以覆盖所有something的元素,但是你用number-1了,导致最后一个元素是覆盖不到的。 也就是检测到空格那个元素时,删掉了something[6],那么'!'作为删之前的something[7]现在就成了新的something[6]保留了下来,也避开了对something[7]的检测,既没有报错也没有被删掉

解决方法自己试着找下吧

回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

263#
发表于 2018-1-10 15:10:40 来自手机 |只看该作者
老师您好,我是看了您的入门课程后自学Python简明教程,在输入与输出这一章遇到了问题,前来请教。

Python2.7   window
此段程序的目的是去除输入字符串中的几种特定标点符号
text=raw_input('Enter text:')
something=list(text)
munber=len(something)
print something
print munber
fo=('.',',','!',':',';',' ')
for i in range(0,int(munber)-1):
    if str(something[i]) in fo:
        del something[i]
print something

以下为两组测试结果:
=============== RESTART: E:/python程序/简明Python教程/tdsf.py ===============
Enter text:sdcdsc !
['s', 'd', 'c', 'd', 's', 'c', ' ', '!']
8
['s', 'd', 'c', 'd', 's', 'c', '!']
>>>
=============== RESTART: E:/python程序/简明Python教程/tdsf.py ===============
Enter text:wsdvcs  !!
['w', 's', 'd', 'v', 'c', 's', ' ', ' ', '!', '!']
10

Traceback (most recent call last):
  File "E:/python程序/简明Python教程/tdsf.py", line 9, in <module>
    if str(something[i]) in fo:
IndexError: list index out of range

我现在完全懵逼,这个报错的意思是list索引超出范围,是指range范围不对?那为什么另一组字符串输入会成功(仅指不报错)?
烦请老师解答QAQ,十分感谢
回复

使用道具 举报

6

主题

0

好友

116

积分

注册会员

Rank: 2

262#
发表于 2018-1-10 15:05:18 |只看该作者
crossin先生 发表于 2018-1-10 14:24
转义是字符串层面
不要和正则表达式的符号搞混了

您说的还是有疑惑,既然正则表达式 \b 就表示空的一个位置,那么加上raw不是多此一举吗
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

261#
发表于 2018-1-10 14:24:22 |只看该作者
pylearner 发表于 2018-1-10 02:58
两位老师好! 按照raw的意思是完全匹配''里面包含的字符串,例如r'\t'是匹配文本中的\t.那么为什么在找单词的 ...


转义是字符串层面
不要和正则表达式的符号搞混了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

6

主题

0

好友

116

积分

注册会员

Rank: 2

260#
发表于 2018-1-10 02:58:10 |只看该作者
两位老师好! 按照raw的意思是完全匹配''里面包含的字符串,例如r'\t'是匹配文本中的\t.那么为什么在找单词的时候前面会加上raw呢?那样不是匹配包含转义符的字符串吗?
python 3.63 os win10
#! python3
import re
text = 'site sea sue sweet see case sse se ssee ssssse loses'
x = re.findall( r"\bs\S*?e\b", text)
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

259#
发表于 2017-12-27 18:05:18 |只看该作者
wymomoo 发表于 2017-12-27 17:31
大家好,我刚开始学习python入门。有个疑问希望能得到解答。
最近不知为何,在pycharm里的新建file里点击运 ...

你是点的左下角这个绿色三角来运行的么?这个是针对你刚运行过的文件的,再点还是运行同一个文件

在你想运行的代码那,鼠标右键-Run 或者直接快捷键ctrl+F9 试下吧
回复

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

258#
发表于 2017-12-27 17:31:49 |只看该作者
大家好,我刚开始学习python入门。有个疑问希望能得到解答。
最近不知为何,在pycharm里的新建file里点击运行,运行的却是先前文件中的代码。
哪怕删除了先前的文档,重启,也没有用,依然无法运行当前的代码。
即使删除了之前的文件,运行时依然指向它
请问问题是在哪呢?
回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

257#
发表于 2017-12-14 20:14:23 |只看该作者
alfred 发表于 2017-12-14 19:53
哪位帮忙回答一下 x+=1,a+=x    这个+= 怎么理解啊?谢谢

x += 1的意思是 x = x +1;
a += x 是 a = a + x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-22 02:19 , Processed in 0.028563 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部