#!/usr/bin/python# -*- coding: UTF-8 -*-# 打印空心等边三角形
rows =int(raw_input('输入行数:'))for i in range(0, rows):for k in range(0,2* rows -1):if(i != rows -1)and(k == rows - i -1or k == rows + i -1):print" * ",elif i == rows -1:if k %2==0:print" * ",else:print" ",else:print" ",print"\n"
打印1-9三角形阵列:
#!/usr/bin/python# -*- coding: UTF-8 -*-for i in range(1,11):for k in range(1,i):print k,print"\n"
输出结果:
112123123412345123456123456712345678123456789
#!/usr/bin/python# -*- coding: UTF-8 -*-'''在python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列
的下标'''
s ='qazxswedcvfr'for i in range(0,len(s),2):print s[i]'''enumerate() :
在每次循环中,可以同时得到下标和元素
际上,enumerate(),在每次循环中返回的是包含每个元素的定值表,两个元素分别赋值
index,char'''for(index,char)in enumerate(s):print"index=%s ,char=%s"%(index,char)
冒泡排序:
#!/usr/bin/python# -*- coding: UTF-8 -*-# 冒泡排序# 定义列表 list
arays =[1,8,2,6,3,9,4]for i in range(len(arays)):for j in range(i+1):if arays[i]< arays[j]:# 实现连个变量的互换
arays[i],arays[j]= arays[j],arays[i]print arays
#!/usr/bin/python# -*- coding: UTF-8 -*-
width =int(raw_input('输入对角线长度: '))for row in range(width +1):for col in range(width +1):if((abs(row - width/2)+ abs(col - width/2))== width/2):print"*",else:print" ",print" "
Python for 常用实例说明:
#!/usr/bin/python# -*- coding: UTF-8 -*-print"for循环只能执行range内两数字相减次数"for i in range(1,10):# 只能执行9次,判断循环终止条件是 >= 第二个数字 10 就不再执行 和 其他语言的 i=1 to 10 不同print'i=:', i
print"使用xrange还是一样的效果"for i in xrange(1,10,1):#还是只能执行9次,和其他语言的 i=1 to 10 可执行10次是不同的print'i=:', i
print'for i in range(1,1)这样是不会进入循环的'print"而其他语言的 for i=1 to 1 是可以进入一次循环的"for i in range(1,1):# 也就是说这样是不会进入循环的。print'没执行这里:i=:', i
print"所以,要执行定次数循环必须将range(1,1)的第二个数字加1"print"for实现step效果递增"for i in xrange(0,10,2):print(i)print"for实现step效果递减"for i in xrange(10,0,-2):print(i)
输出结果为:
for循环只能执行range内两数字相减次数
i=:1
i=:2
i=:3
i=:4
i=:5
i=:6
i=:7
i=:8
i=:9使用xrange还是一样的效果
i=:1
i=:2
i=:3
i=:4
i=:5
i=:6
i=:7
i=:8
i=:9for i in range(1,1)这样是不会进入循环的而其他语言的for i=1 to 1是可以进入一次循环的所以,要执行定次数循环必须将range(1,1)的第二个数字加1for实现step效果递增02468for实现step效果递减108642
输出各种形状三角形:
#coding=UTF-8
rows =int(input('输入列数: '))print"用for函数书写的正等腰直角三角形"for i in range(0, rows):for k in range(0, i+1):print" * ",print"\n"print"用for函数书写的倒等腰直角三角形"for i in range(0, rows):for k in range(0, rows-i):print" * ",print"\n"print"用while函数书写的正等腰直角三角形"
i=1while i:
j=1while j:print"*"," ",if i==j:break
j+=1if j>rows:breakprint"\n"
i+=1if i>rows:break
Python2.7.8(default,Jun302014,16:08:48)[MSC v.150064 bit (AMD64)] on win
32Type"help","copyright","credits"or"license"for more information.>>> ord('b')# convert char to int 98>>> chr(100)# convert int to char 'd'>>> unichr(100)# return a unicode byte
u'd'>>>
使用内置 enumerate 函数进行遍历:
for index, item in enumerate(sequence): process(index, item)实例
>>> sequence = [12, 34, 34, 23, 45, 76, 89] >>> for i, j in enumerate(sequence): ... print i,j ... 0 12 1 34 2 34 3 23 4 45 5 76 6 89使用list.append()模块对质数进行输出。
#!/usr/bin/python # -*- coding: UTF-8 -*- # 输出 2 到 100 简的质数 prime = [] for num in range(2,100): # 迭代 2 到 100 之间的数字 for i in range(2,num): # 根据因子迭代 if num%i == 0: # 确定第一个因子 break # 跳出当前循环 else: # 循环的 else 部分 prime.append(num) print prime输出结果:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]打印空心等边三角形:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 打印空心等边三角形 rows = int(raw_input('输入行数:')) for i in range(0, rows): for k in range(0, 2 * rows - 1): if (i != rows - 1) and (k == rows - i - 1 or k == rows + i - 1): print " * ", elif i == rows - 1: if k % 2 == 0: print " * ", else: print " ", else: print " ", print "\n"打印1-9三角形阵列:
#!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1,11): for k in range(1,i): print k, print "\n"输出结果:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9#!/usr/bin/python # -*- coding: UTF-8 -*- '''在python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列 的下标''' s = 'qazxswedcvfr' for i in range(0,len(s),2): print s[i] '''enumerate() : 在每次循环中,可以同时得到下标和元素 际上,enumerate(),在每次循环中返回的是包含每个元素的定值表,两个元素分别赋值 index,char''' for (index,char) in enumerate(s): print "index=%s ,char=%s" % (index,char)冒泡排序:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 冒泡排序# 定义列表 list arays = [1,8,2,6,3,9,4] for i in range(len(arays)): for j in range(i+1): if arays[i] < arays[j]: # 实现连个变量的互换 arays[i],arays[j] = arays[j],arays[i] print arays更多实例:python 打印菱形、三角形、矩形的代码感觉,写的有点复杂了,如果让你画圆或者其他图形呢?
其实运用数学公式,就可以了。比如菱形 |x - w/2| + |y - w/2| = w/2 轻松搞定。
#!/usr/bin/python # -*- coding: UTF-8 -*- width = int(raw_input('输入对角线长度: ')) for row in range(width + 1): for col in range(width + 1): if ((abs(row - width/2) + abs(col - width/2)) == width/2): print "*", else: print " ", print " "Python for 常用实例说明:
#!/usr/bin/python # -*- coding: UTF-8 -*- print "for循环只能执行range内两数字相减次数" for i in range(1,10): # 只能执行9次,判断循环终止条件是 >= 第二个数字 10 就不再执行 和 其他语言的 i=1 to 10 不同 print 'i=:', i print "使用xrange还是一样的效果" for i in xrange(1,10,1): #还是只能执行9次,和其他语言的 i=1 to 10 可执行10次是不同的 print 'i=:', i print 'for i in range(1,1)这样是不会进入循环的' print "而其他语言的 for i=1 to 1 是可以进入一次循环的" for i in range(1,1): # 也就是说这样是不会进入循环的。 print '没执行这里:i=:', i print "所以,要执行定次数循环必须将range(1,1)的第二个数字加1" print "for实现step效果递增" for i in xrange(0,10,2): print(i) print "for实现step效果递减" for i in xrange(10,0,-2): print(i)输出结果为:
for循环只能执行range内两数字相减次数 i=: 1 i=: 2 i=: 3 i=: 4 i=: 5 i=: 6 i=: 7 i=: 8 i=: 9 使用xrange还是一样的效果 i=: 1 i=: 2 i=: 3 i=: 4 i=: 5 i=: 6 i=: 7 i=: 8 i=: 9 for i in range(1,1)这样是不会进入循环的 而其他语言的 for i=1 to 1 是可以进入一次循环的 所以,要执行定次数循环必须将range(1,1)的第二个数字加1 for实现step效果递增 0 2 4 6 8 for实现step效果递减 10 8 6 4 2输出各种形状三角形:
#coding=UTF-8 rows = int(input('输入列数: ')) print "用for函数书写的正等腰直角三角形" for i in range(0, rows): for k in range(0, i+1): print " * ", print "\n" print "用for函数书写的倒等腰直角三角形" for i in range(0, rows): for k in range(0, rows-i): print " * ", print "\n" print "用while函数书写的正等腰直角三角形" i=1 while i: j=1 while j: print "*"," ", if i==j: break j+=1 if j>rows: break print "\n" i+=1 if i>rows: break
10. Python 如何将整数转化成二进制字符串
1、你可以自己写函数采用 %2 的方式来算。
>>> binary = lambda n: '' if n==0 else binary(n/2) + str(n%2) >>> binary(5) '101' >>>2、采用 python 自带了方法 bin 函数,比如 bin(12345) 回返回字符串 '0b11000000111001', 这个时候在把0b去掉即可:
>>> bin(12345).replace('0b','') '11000000111001'3、也可以采用字符串的 format 方法来获取二进制:
>>> "{0:b}".format(12345) '11000000111001' >>>11. Python 将一个数字转化为 对应ASCII , 用的是 ord('a') 和chr(59) 之类:
Python 2.7.8 (default, Jun 30 2014, 16:08:48) [MSC v.1500 64 bit (AMD64)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> ord('b') # convert char to int 98 >>> chr(100) # convert int to char 'd' >>> unichr(100) # return a unicode byte u'd' >>>