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

来源:互联网 发布:网络信息安全岗位认识 编辑:程序博客网 时间:2024/05/21 09:32

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 22 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 1b 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 1b 2c Noned None
这样多出的部分会被map的第一个参数None填充.

用enumerate访问当前的索引值:

  l1,l2 = ['a','b','c','d'];  for index,a in enumerate(l1):    print index,a;
0 a1 b2 c3 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.





0 0
原创粉丝点击