python特殊字符大全_python中字符串是特殊的列表

for x in range(20):

print 'fizz'[x%3*4::]+'buzz'[x%5*4::]or x

这个是由 Jeff Atwood推广的一个编程练习叫FizzBuzz,问题如下:

打印数字1-100,3的倍数打印'Fizz';5的倍数打印'Buzz';既是3又是5的倍数打印'FizzBuZZ'.大牛们给出以上解决方法也不知出处。一运维朋友初学python问我解决方法的意思,以下是说明:

首先要知道python字符串是一种特殊的列表:

>>> a = 'fizz'

>>> type(a)

>>> a[0]

'f'

>>> a[1]

'i'

>>> a[2]

'z'

>>> a[3]

'z'

>>> a[4]

Traceback (most recent call last):

File "", line 1, in

a[4]

IndexError: string index out of range

>>> len(a)

4

>>> a[0::]

'fizz'

>>> a[1:4]

'izz'

>>> a[2:4]

'zz'

>>> a[3%3*4::]

'fizz'

>>> a[1%3*4::]

''

>>> a[2%3*4::]

''

>>> a[4%3*4::]

''

列表之间可以+ 等同于 list.extend(list) 追加 不去重复。有兴趣朋友可以写一个 相加去重复 相减得到不重复

>>> print '' or 1

1

当x=0时 'Fizz'[0%3*4::] + 'Buzz'[0%5*4::] 在or x python中非空为真

当x=1时 'Fizz'[1%3*4::] + 'Buzz'[1%5*4::] 两个都是为空 所以打印x=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值