当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-01 20:31 
头像

注册: 2007-09-04 5:23
帖子: 193
地址: 福建福州
送出感谢: 0 次
接收感谢: 0 次
最近在看Python核心编程一书,里面有道题是这样的,使用raw_input来让用户输入一个字符串,然后在把这个字符串用循环语句逐个打印在屏幕上!

我知道,这样的题目实际上非常的简单,可是就是有一点难住我了,就是怎么知道用户输入的是多少个字符的字符串,不然在后面的循环语句又如何设定循环参数呢?

代码:
我的代码如下:


#!/usr/bin/python
#Filename:2_7.py
text=raw_input("Enter string:")
for ?? in range(??)
    print


别鄙视我,以上带有??的地方就是我不知道该怎么写的地方了,虽然算法方面我已经有了概念,就是不知道怎么取得用户输入字符串,来做循环。。。。。。


_________________
内练一口气,外练一口屁,不内不外练志气!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-01 20:40 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 4
代码:
#!/usr/bin/env python
# Filename:2_7.py
text=raw_input("Enter string:")
for c in text
    print c,


按上面就行了,不要以为range是for语句的一部分。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-09-01 20:40 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
只输入了一个字符串啊,你循环什么


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-09-01 20:51 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 4
BigSnake.NET 写道:
只输入了一个字符串啊,你循环什么


估计是出题目的人脑残,非要它写出用循环打印一个单字符串的程序来。

当然还有可能是raw_input允许输入多行文本,按行分隔字符串。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-02 21:39 
头像

注册: 2007-09-04 5:23
帖子: 193
地址: 福建福州
送出感谢: 0 次
接收感谢: 0 次
poet 写道:
代码:
#!/usr/bin/env python
# Filename:2_7.py
text=raw_input("Enter string:")
for c in text
    print c,


按上面就行了,不要以为range是for语句的一部分。


Pyhton真是牛逼,这样都能循环阿,太强了,顺便说下这段代码少了个:。。。。。。。

顺便问下,为什么要写成for c in text呢?而且下面是print c 怎么会打印的确是text的字符串?


_________________
内练一口气,外练一口屁,不内不外练志气!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-02 21:46 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
jin0828 写道:
poet 写道:
代码:
#!/usr/bin/env python
# Filename:2_7.py
text=raw_input("Enter string:")
for c in text
    print c,


按上面就行了,不要以为range是for语句的一部分。


Pyhton真是牛逼,这样都能循环阿,太强了,顺便说下这段代码少了个:。。。。。。。

顺便问下,为什么要写成for c in text呢?而且下面是print c 怎么会打印的确是text的字符串?


打印的不是 text 的字符串
字母用空格隔开的。。


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-03 9:32 
头像

注册: 2006-04-12 18:54
帖子: 4669
送出感谢: 0 次
接收感谢: 7
jin0828 写道:
poet 写道:
代码:
#!/usr/bin/env python
# Filename:2_7.py
text=raw_input("Enter string:")
for c in text
    print c,


按上面就行了,不要以为range是for语句的一部分。


Pyhton真是牛逼,这样都能循环阿,太强了,顺便说下这段代码少了个:。。。。。。。

顺便问下,为什么要写成for c in text呢?而且下面是print c 怎么会打印的确是text的字符串?


python里字符串和列表大部分操作方法是一样的。

可以把字符串某些方面上理解为一个由单个字符组成的列表 。

for这个是列表/字典的循环命令,随便找个教程看看就清除了


_________________
blog:杰林修·呓


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-05 15:41 

注册: 2006-05-01 12:29
帖子: 60
地址: zju
送出感谢: 0 次
接收感谢: 0 次
jin0828 写道:
poet 写道:
代码:
#!/usr/bin/env python
# Filename:2_7.py
text=raw_input("Enter string:")
for c in text
    print c,


按上面就行了,不要以为range是for语句的一部分。


Pyhton真是牛逼,这样都能循环阿,太强了,顺便说下这段代码少了个:。。。。。。。

顺便问下,为什么要写成for c in text呢?而且下面是print c 怎么会打印的确是text的字符串?

同样的功能perl总共只要三行代码就行了
代码:
#!/usr/bin/perl
print "Enter string:\n";
print while (<STDIN>);


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-06 16:12 
头像

注册: 2006-04-12 18:54
帖子: 4669
送出感谢: 0 次
接收感谢: 7
heejun 写道:
jin0828 写道:
poet 写道:
代码:
#!/usr/bin/env python
# Filename:2_7.py
text=raw_input("Enter string:")
for c in text
    print c,


按上面就行了,不要以为range是for语句的一部分。


Pyhton真是牛逼,这样都能循环阿,太强了,顺便说下这段代码少了个:。。。。。。。

顺便问下,为什么要写成for c in text呢?而且下面是print c 怎么会打印的确是text的字符串?

同样的功能perl总共只要三行代码就行了
代码:
#!/usr/bin/perl
print "Enter string:\n";
print while (<STDIN>);

这不是抬杠么 -____-,python也可以三行阿
代码:
#!/usr/bin/env python
for c in raw_input("Enter string:"):
 print c


_________________
blog:杰林修·呓


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-09-06 16:22 
头像

注册: 2006-04-12 18:54
帖子: 4669
送出感谢: 0 次
接收感谢: 7
还有2行的

代码:
#!/usr/bin/env python
print "\n".join(raw_input("Enter string:"))


\n是换行符

join是字符串类型的方法。

就是把字符串 "\n"作为分隔符插入后面的列表

如果后面的列表是["python is cool","pytong is great","I love python"],那么 "\n".join(["python is cool","pytong is great","I love python"])的结果就是"python is cool\npython is great\nI love python"

而前面说过了,python里的字符串可以作为特殊的列表来看待。
那么字符串"abcde"其实也就是["a","b","c","d","e"]
"\n".join("abcde")就是"\n".join(["a","b","c","d","e"]),也就是"a\nb\nc\nd\ne"了


_________________
blog:杰林修·呓


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-09-08 10:33 
头像

注册: 2006-02-21 23:36
帖子: 88
送出感谢: 0 次
接收感谢: 0 次
上面的解法很巧妙,很有意思。


_________________
=[零]=


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 菜鸟学Python提问之二。。。。。。
帖子发表于 : 2008-09-20 0:10 

注册: 2008-09-19 23:55
帖子: 6
送出感谢: 0 次
接收感谢: 0 次
jarlyyn 写道:
jin0828 写道:
poet 写道:
代码:
#!/usr/bin/env python
# Filename:2_7.py
text=raw_input("Enter string:")
for c in text
    print c,


按上面就行了,不要以为range是for语句的一部分。


Pyhton真是牛逼,这样都能循环阿,太强了,顺便说下这段代码少了个:。。。。。。。

顺便问下,为什么要写成for c in text呢?而且下面是print c 怎么会打印的确是text的字符串?


python里字符串和列表大部分操作方法是一样的。

可以把字符串某些方面上理解为一个由单个字符组成的列表 。

for这个是列表/字典的循环命令,随便找个教程看看就清除了

楼上说的对 ,range的那个写法
for c in range(0,len(text)):
print text[c],
效果一样的
PS:print 后面的","是在打印对象后面添加一个空格


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译