目录
31. 输入字母判断是星期几
32. 翻转列表
33. 分割列表
34. 联系函数调用
35. 文本颜色设置
36. 求100之内的素数
37. 排序
38. 求矩阵主对角线元素之和
39. 数组中插入元素
40. 将一个数组逆序输出
41. 模仿静态变量的用法
42. 学习使用auto定义变量的用法
43. 模仿静态变量(static)
44. Python 两个矩阵相加
45. 统计 1 到 100 之和
46. 求数字的平方
47. 两个变量值互换
48. 数字比较
49. 使用lambda来创建匿名函数
50. 输出一个随机数
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
# coding:UTF-8
# Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
c1 = raw_input("plz input a char, we will tell you the weekday: ")
if c1 == 'M' or c1 == 'm':
print 'Monday'
elif c1 == 'T' or c1 == 't':
c2 = raw_input("you should tell me the second char: ")
if c2 == 'U' or c2 == 'u':
print 'Tuesday'
elif c2 == 'H' or c2 == 'h':
print 'Thursday'
else :
print 'wrong chars'
elif c1 == 'W' or c1 == 'w':
print 'Wednesday'
elif c1 == 'F' or c1 == 'f':
print 'Friday'
elif c1 == 's' or c1 == 'S':
c2 = raw_input("you should tell me the second char: ")
if c2 == 'U' or c2 == 'u':
print 'Sunday'
elif c2 == 'a' or c2 == 'A':
print 'Saturday'
else :
print 'wrong chars'
else :
print 'wrong chars'
题目:按相反的顺序输出列表的值。
# coding: UTF-8
l = [1,2,3,4,5,6,7,8,9]
for i in l:
print i,
print
for i in range(len(l)-1, -1, -1):
print l[i],
print
for i in l[::-1]:
print i,
print
# list[::-1] 翻转列表
print l[::-1]
print l[2::-1]
print l[:3][::-1]
题目:按逗号分隔列表。
join()方法
# coding: UTF-8
import sys
l = [1,2,3,4,5]
for i in l[:-1]:
sys.stdout.write(str(i))
sys.stdout.write(',')
sys.stdout.write(str(l[-1]))
print
# join()方法用于将序列中的元素以指定的字符连接生产一个新的字符串。
s1 = ','.join(str(n) for n in l)
l2 = ['1','2','3']
s2 = ','.join(l2)
print s1
print s2
题目:练习函数调用。
# coding: UTF-8
def hello_world():
print 'hello world'
def three_hellos():
for i in range(3):
hello_world()
if __name__ == '__main__':
three_hellos()
题目:文本颜色设置。
# coding: UTF-8
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
print bcolors.WARNING + "警告" + bcolors.ENDC
print('\033[92m hello \033[0m')
print '\033[91m world \033[0m'
题目:求100之内的素数。
# coding: UTF-8
from math import sqrt
def is_sushu(n):
for j in range(2, int(sqrt(n))+1):
if n % j == 0:
return False
return True
if __name__ == '__main__':
for i in range(2, 101):
if is_sushu(i):
print i
题目:对10个数进行排序。
# coding: UTF-8
if __name__ == '__main__':
print "plz input ten number and sort them: "
l = []
for i in range(10):
l.append(input('the %d num: '%(i+1)))
l.sort()
print l
题目:求一个3*3矩阵主对角线元素之和。
# coding: UTF-8
l1 = [0]*3
l2 = [0]*3
l3 = [0]*3
l = [l1, l2, l3]
sum = 0
for i in range(3):
for j in range(3):
l[i][j] = input('please input a number: ')
if i == j:
sum += l[i][j]
for i in range(3):
print l[i]
print l
print sum
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
# coding: UTF-8
l = [1, 5, 9, 10, 15]
print 'before insert: ', l
num = input("pls input a num: ")
# 0从大到小, 1从小到大, 2是相等
flag = -1
for i in range(4):
if l[i]>l[i+1]:
flag = 0
break
elif l[i] num:
l.append(num)
elif flag == 0:
for i in range(5):
if num >= l[i]:
l.insert(i, num)
break
if i == 4 and l[4] <> num:
l.append(num)
else:
print 'error'
print 'after insert: ',l
题目:将一个数组逆序输出。
# coding: UTF-8
l = []
print 'plz input 5 number:'
for i in range(5):
l.append(float(raw_input("plz input a num")))
print l
l1 = l[::-1]
l2 = l.reverse() #none, reverse()是就地翻转,没有返回值
l3 = list(reversed(l)) # reversed()返回的是一个迭代器,不是list,需要list转换一下
print l, l1, l2, l3
题目:模仿静态变量的用法。
# coding: UTF-8
def func():
var = 0
print 'var = %d' % var
var += 1
if __name__ == '__main__':
for i in range(3):
func()
# 类的属性
class Static:
StaticVar = 5
def func(self):
self.StaticVar += 1
print self.StaticVar
print Static.StaticVar
a = Static()
for i in range(3):
a.func()
print Static.StaticVar
题目:学习使用auto定义变量的用法。
# coding: UTF-8
'''
C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。
四种存储类别说明符有两种存储期:自动存储期和静态存储期。
其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。
在函数内部定义的变量成为局部变量。在某些C语言教材中,局部变量称为自动变量,这就与使用可选关键字auto定义局部变量这一作法保持一致。
局部变量仅由其被定义的模块内部的语句所访问。换言之,局部变量在自己的代码模块之外是不可知的。切记:模块以左花括号开始,以右花括号结束。
对于局部变量,要了解的最重要的东西是:它们仅存在于被定义的当前执行代码块中,即局部变量在进入模块时生成,在退出模块时消亡。
定义局部变量的最常见的代码块是函数。
整数变量x被定义了两次,一次在func1()中,一次在func2()中。func1()和func2()中的x互不相关。其原因是每个x作为局部变量仅在被定义的块内可知。
语言中包括了关键字auto,它可用于定义局部变量。但自从所有的非全局变量的缺省值假定为auto以来,auto就几乎很少使用了,
'''
# python 没有auto关键字.
num = 2
def func():
num = 1
print 'internal num = %d' % num
num += 1
for i in range(3):
print "num = %d" %num
num += 1
func()
题目:模仿静态变量(static)另一案例。
# coding: UTF-8
class Num:
nNum = 1
def inc(self):
self.nNum += 1
print 'nNum = %d' % self.nNum
if __name__ == '__main__':
nNum = 2
inst = Num()
for i in range(3):
nNum += 1
print 'The num = %d' %nNum
inst.inc()
print 'inst.num = %d' %inst.nNum
题目:Python 两个矩阵相加
两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:
# coding: UTF-8
a = [[],[],[]]
b = [[],[],[]]
c = [[],[],[]]
print 'Please input the first: '
for i in range(3):
for j in range(3):
a[i].append( input('plz input a:%d,%d: ' % (i,j)))
print 'Please input the second: '
for i in range(3):
for j in range(3):
b[i].append( input('plz input b[%d][%d]: ' % (i,j)))
for i in range(3):
for j in range(3):
c[i].append(a[i][j] + b[i][j])
print a, '+', b , " = "
print c
题目:统计 1 到 100 之和。
# coding: UTF-8
sum = 0
for i in range(1, 101):
sum += i
print sum
题目:求输入数字的平方,如果平方运算后小于 50 则退出。
# coding: UTF-8
a = input("plz input a : ")
b = a * a
print '%d power 2 is %d' %(a,b)
while b >= 50:
a = input("plz input a : ")
b = a * a
print '%d power 2 is %d' %(a,b)
print '########################'
# python 不支持do ... while, 可用while+break来实现do...while
while True:
a = input("plz input a : ")
b = a * a
print '%d power 2 is %d' %(a,b)
if b < 50 :
break
题目:两个变量值互换。
# coding: UTF-8
x = input("plz input x: ")
y = int(raw_input('plz input y: '))
print 'you input x = %d, y = %d' %(x, y)
x,y=y,x
print ('after swap1: x = %d, y = %d' %(x, y))
t=x
x=y
y=t
print ('after swap2: x = %d, y = %d' %(x, y))
x=x+y
y=x-y
x=x-y
print ('after swap3: x = %d, y = %d' %(x, y))
x=x^y
y=x^y
x=x^y
print ('after swap4: x = %d, y = %d' %(x, y))
print '#########func#########'
# python 可以通过返回一个tuple类型,来间接达到返回多个值
def swap(x,y):
return (y,x)
def swap1(x,y):
x,y=y,x
return (x,y)
def swap2(x,y):
t=x
x=y
y=t
# return (x,y)
def swap3(x,y):
x=x+y
y=x-y
x=x-y
# return (x,y)
def swap4(x,y):
x=x^y
y=x^y
x=x^y
return (x,y)
x,y = swap(x,y)
print ('after swap: x = %d, y = %d' %(x, y))
题目:数字比较。
# coding: UTF-8
x = input('x: ')
y = input('y: ')
if x < y:
print '%d < %d' %(x, y)
elif x == y:
print '%d = %d' %(x, y)
else:
print '%d > %d' %(x, y)
题目:使用lambda来创建匿名函数。
# coding: UTF-8
MAX = lambda x,y: x if x>y else y
MIN = lambda x,y: (x
题目:输出一个随机数。
# coding: UTF-8
# 使用random模块
import random
print random.uniform(1, 100)