大部分代码是在ipython环境下,所以复制过来时有命令提示符~
题目所用知识点在题后写出
1、倒序输出10以内数字:for,range()
range()表示的范围是前闭后开
In [9]: for i in range(10,0,-1):
...: print (i)
...:
...:
10
9
8
7
6
5
4
3
2
1
2、倒序打印 while
flag=-10
while flag:
flag+=1
print(flag)
-------------
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
3、输出0-1000内能被7整除的数字 for, range() ,break, if ;continue,while,if,break
---------方法1---------------
count=0
for i in range(0,1000,7):
print(i)
count+=1
if count>=20:
break
---------方法2------------
count=0
i=0
while True: #是True 不是true
print(i)
i+=7
count+=1
if count>=20:
break
4、打印奇偶数,range(),for,if;continue
-----------方法1-------------
In [11]: for i in range(10):
...: if i % 2:
...: print(i)
...:
1
3
5
7
9
------------方法2------------
In [12]: for i in range(10):
...: if i % 2:
...: print(i)
...: continue
...:
...:
1
3
5
7
9
5、关于continue的用法:
In [17]: for i in range(10):
...: if i % 2 == 1:
...: continue #i如果为奇数,跳过当次循环,直接进入下次循环
...: print(i)#i为偶数直接输出
...:
...:
...:
...:
...:
0
2
4
6
8
-----------------
In [16]: for i in range(10):
...: if i % 2 == 0:
...: continue
...: print(i)
...:
...:
...:
...:
...:
1
3
5
7
9
6、break用法:
打印20个1-1000内7的倍数
In [20]: for i in range(0,1000,7):
...: print(i)
...: count+=1
...: if count >=20:
...: break
...:
0
7
14
21
28
35
42
49
56
63
70
77
84
91
98
105
112
119
126
133
ipython内查看函数用法举例:
In [17]: help (range)
#按 Q键退出帮助窗口
7、题目如下:
正序输出各位 input,if…else,for
num = int(input("please input a number between 0 and 99999"))
#input函数默认输出类型为字符串,因此需要类型转换
if 0 > num or num > 99999:
print ('wrong input')
elif num >= 1000:
if num >= 10000:
digit=5
else:
digit=4
else:
if num >= 100:
digit=3
elif num >= 10:
digit=2
else:
digit=1
print(digit)
pre=0
print("---------------")
for i in range(digit,0,-1):
cur = num//(10**(i-1))
print(cur-pre*10)
pre=cur
倒序输出各位 while,if,break
#正序
num=int(input('please input a number between 0 and 99999'))
#print(num)
digit=0
while True:
print(num%10)
num=num//10
digit+=1
if num == 0:
break
print("你输入的位数是:",digit)
1、打印一个边长为n的正方形
N=int(input("输入边长n"))
for i in range(N):
if i == 0 or i == N-1 :
print(N*'x')
else:
print('x'+(N-2)*' '+'x')
-------------------
输入边长n5
xxxxx
x x
x x
x x
xxxxx
2、打印100内所有奇数和
sum=0
for i in range(1,100,2):
sum+=i
else:
print(sum)
---------------------
2500
3、求1到5的阶乘之和
N=int(input("输入一个数:\n"))
count=1
sum=0
for i in range(1,N+1):
count*=i
sum+=count
N=N-1
print(sum)
-----------------------
输入一个数:
5
153
4、给一个数,判断它是否是质数(素数)
#质数:只能被1和它本身整除,1不是素数,2是素数
N=int(input("input a number:\n"))
for i in range(2,N):
if N % i == 0:
print("NOT a prime")
break
else:
print("YES,a prime")
--------------------------
input a number:
24
NOT a prime
4.1 打印100以内素数并求和
#100以内素数
def IsPrime(N):
for i in range(2,N):
if N % i == 0:
return False
return True
sum=2 #2是1不是
for i in range(3,100):
if IsPrime(i):
print(i)
sum+=i
print(sum)
测试代码运行时间的三种方法
-----------1---------
import datetime
start = datetime.datetime.now()
CODE
end = datetime.datetime.now()
print(end-start)
---------2------------
import time
start = time.clock()
CODE
end = time.clock()
print(end-start)
--------3-----------
%%timeit 跑1000 loops ,然后求平均
CODE
#此法只能在ipython,notebook环境使用
5、输入两个数,比较大小后升序输出
I=int(input("输入数字1:\n"))
J=int(input("输入数字2:\n"))
if I >= J:
print(J,I)
else:
print(I,J)
------------------
#python没有三目运算符,但是有if..else...表示三目运算
#真值if条件else假值,因此上面的程序可改写为
I=int(input("输入数字1:\n"))
J=int(input("输入数字2:\n"))
print(J,I) if I >= J else print(I,J)
输入数字1:
3
输入数字2:
4
3 4
6、输入N个数,求 每次 输入后的算术平均数 N
n=0
sum=0
print("Notice:input quit means exit the program")
while True :
i = input(">>")
if i == 'quit':
break
n += 1
sum += int(i)
avg = sum/n
print(avg)
----------------
7、打印九九乘法表(左下和右上三角)
for i in range(1,10):
for j in range(1,i+1):
print(j,'x',i,'=',i*j,end=' ')
print()
#右上角九九乘法表
line=' '
for i in range(1,10):
for j in range(1,10):
if i > j:
line = '{} {} {:<4}'.format(' ',' ',' ')
else:
line = '{}*{}={:<4}'.format(i,j,i*j) #占位符
print(line,end=' ')
print()
8、打印菱形
N = int(input("input a number:\n"))
m = N // 2
print(m)
for i in range (-m,m+1):
if i < 0:
prespace = -i
else:
prespace = i
print(prespace*' '+'*'*(N-prespace*2))
------------------
input a number:
7
3
*
***
*****
*******
*****
***
*
#三目运算符简化
N = int(input("input a number:\n"))
m = N // 2
print(m)
for i in range (-m,m+1):
print(-i*' '+'*'*(N+i*2))if i < 0 else print(i*' '+'*'*(N-i*2))
#特殊图像
for i in range(-3,4):
if i == 0:
print(7*'*')
else:
if i < 0:
print(' '*(-i)+(4+i)*'*')
else:
print(3*' '+(4-i)*'*')
---------------------
*
**
***
*******
***
**
*
#
N=int(input("输入一个数字:\n"))
m = N // 2
for i in range (-m,m+1):
if i == 0:
print(N*'*')
else:
if i < 0:
print(' '*(-i)+(m+1+i)*'*')
else:
print((N-m)*' '+(m+1-i)*'*')
-----------------------
输入一个数字:
9
*
**
***
****
*********
****
***
**
*
#三目运算符简化
N=int(input("输入一个数字:\n"))
m = N // 2
for i in range (-m,m+1):
if i == 0:
print(N*'*')
else:
print(' '*(-i)+(m+1+i)*'*') if i < 0 else print((N-m)*' '+(m+1-i)*'*')
9、斐波那契数列
#F(n)=F(n-1)+F(n-2)
print(1)
a=0
b=1
while True :
c=a+b
a=b
b=c
if c > 100:
break
print(c)
10、猴子吃桃问题
#第九天已经剩下一个桃子,第一天摘多少
n = 1
for i in range(1,10):
n=2*(n+1)
print(n)
----------------------
4
10
22
46
94
190
382
766
1534