您的位置:首页 > 编程语言 > Python开发

爱上python的理由----python“奇淫巧技”

2014-04-28 16:44 183 查看
1.字符串逆序:

对我个人而言,这个必须放在这里。

题目:打印出字符串l的逆序输出,即 l = "abcde",则输出 "edcba".

l = "abcde";
print l[::-1];


edcba


2.打印一串“*”:

打印log是调试程序经常用到的方法,如何打印一串“************************”出来呢:

print "*"*20;
********************


3.交换变量:

a,b = 1,2;
print a,b;
b,a = a,b;
print a,b;
1 2
2 1


4.连接两个列表:

a,b = [1,2,3],[4,5,6];
print a,b;
print a+b;
[1, 2, 3] [4, 5, 6]
[1, 2, 3, 4, 5, 6]


5.求2的5次方:

还在找数学函数么,你可以这样:

print 2**5;


6.数值比较:

当我第一次接触C语言的时候,多年的数学学习让我尝试写下了如下代码:

int a = 2;
if(1<a<3)
printf("YES");
我得到了一个语法错误,从此我学会了在编程世界这个逻辑应该这样写 (a>1 && a<3),直到我遇到python:

a = 2;
if 1<a<3:
print "YES"
u guess what? I got a "YES".

7.列表迭代:

同时迭代两个列表:

l1,l2 = ['a','b','c','d'],['1','2'];
for a,b in zip(l1,l2):
print a,b;
a 1
b 2
注意,如果l1,l2长度不一,多出的部分会被忽略,如上输出。若想迭代完全,应使用map替换zip

l1,l2 = ['a','b','c','d'],['1','2'];
for a,b in map(None,l1,l2):
print a,b;
a 1
b 2
c None
d None
这样多出的部分会被map的第一个参数None填充.

用enumerate访问当前的索引值:

l1,l2 = ['a','b','c','d'];
for index,a in enumerate(l1):
print index,a;
0 a
1 b
2 c
3 d


筛选出列表中的偶数项:
l = [1,2,4,6,5];
print [a for a in l if a%2 == 0];
[2, 4, 6]


FizzBuzz问题

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

print ["Fizz"[x%3*4:] + "Buzz"[x%5*4:] or x for x in xrange(1,101)];


enjoy it.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: