python学习一及部分练习
上一篇 / 下一篇 2018-07-10 18:05:50 / 个人分类:python
print " I love home "
print "pizza"*20
print "yum"*20
print "I'm full "
print """长语句三个双引号:Sing a song of sixpence, a pocket full of rye,
Four and twenty blackbirds baked in a pie.
When the pie was opened the birds began to sing.
Wasn't that a dainty dish to set before the king?"""
print '''长语句三个单引号:Sing a song of sixpence, a pocket full of rye,
Four and twenty blackbirds baked in a pie.
When the pie was opened the birds began to sing.
Wasn't that a dainty dish to set before the king?'''
#除法运算符,只保留整数
print 5 / 2
#除法运算符,保留一位小数
print 5.0 / 2
#除法运算符,保留两位位小数
print 5.00/2
#乘法和加法在一起时,默认按照数据运算符号计算顺序来,比如:先+和*在一起时,则先算乘法,再算加法
print 3+2*3
#如果先算加法,就要使用()来操作
print (3+2)*3
#几次幂,也称为求幂
print 3**3
#利用 ** 还可以用非整数作为指数,要想利用乘法来做到这一点可不容易。
print 3**5.5
#取余数使用%
print 7%2
#如果做浮点数除法,会得到小数答案
print 7.0/2
#自增ncrementing ,自减decrementing
number=7
number+=1
print number
number=7
number-=1
print number
#非常大和非常小
print 9938712345656.34 * 4823459023067.456
#在科学计数法中,地球到 Alpha Centauri 的距离可以写
#作:3.8 × 1016(看到了吗,16 抬高了,而且要小一点)。这读作“3.8 乘以 10 的 16
#次幂”#或者“3.8 乘以 10 的 16 次方”。它的意思就是,把 3.8 的小数点向右移 16 位,
#并在这个过程中根据需要补 0。
#E记法,只是科学计数法的另一种写法。在 E 记法中,这个数要写作 3.8E16 或者 3.8e16。读作“3.8 指数 16”或者简读
#作“3.8 e 16”。这里假设指数是 10 的幂。这就等同于写成 3.8×1016。
#求幂是指一个数自乘得到幂。E记法表示乘以10的几次幂。python中不区分e和E.
#python pass 语句
for letter in 'python':
if letter == 'h':
pass
print '这是pass块'
print '当前字母:',letter
print "good bye!"
import json
data = [{ 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 }]
json = json.dumps(data)
print json
for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代
if num%i == 0: # 确定第一个因子
j=num/i # 计算第二个因子
print '%d 等于 %d * %d' % (num,i,j)
break # 跳出当前循环
else: # 循环的 else 部分
print num, '是一个质数'
#元组:Python的元组与列表类似,不同之处在于元组的元素不能修改
tup1=('physics','chemistry',1997,2000)
tup2=(1,2,3,4,5)
tup3=(6,) #元组中只包含一个元素时,需要在元素后面添加逗号
print "tup1[0]:",tup1[0]
print "tup2[1:5:]",tup2[1:5]
#元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1=(1,2)
tup2=('abc','xyz')
tup3=tup1+tup2
print"元组不能被修改,但是可以组合,组合后的元组tup3为:", tup3
#python字典(dictionary)
#键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
dict={'a':1,'b':2,'b':6}
print "dict['b']:",dict['b']
dict={'Name':'Zara','Age':7,'Class':'First'}
print "dict['Name']:",dict['Name']
#向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
dict={'Name':'Zara','Age':7,'Class':'First'}
dict['Name']="Zhangsan" #修改已有字典键值
dict['School']="DPS School" #往字典里添加新的键值
print "dict['Name']:",dict['Name']
print "dict['School']:",dict['School']
#删除字典
dict={'Name':'Zara','Age':7,'Class':'First'}
del dict['Name'] #删除Name条目,之后不可查看Name键值
#print "dict['Name']:",dict['Name'] 查询失败
print "dict['Age']:",dict['Age']
dict.clear() #清空词典所有条目,之后dict字典中的键值不可查看
#print "dict['Age']:",dict['Age'] 查询失败
del dict #删除词典
# ---------------------------------------------------分割线------------------------------------------------------------
#python练习题
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i!=k)and (i!=j)and (j!=k):
print i,j,k
#练习25
n=0
s=0
t=1
for n in range(1,21):
t*=n
s+=t
print '1! + 2! + 3! + ... + 20! = %d' % s
#练习99:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
#方法一
def read(filename):
f = open(filename,"r+")
a = f.readlines()
return a
s = list("".join(read("test1.txt")+read("test2.txt")))
s.sort()
s1 = "".join(s)
t = open("test.txt","w+")
t.writelines(s1)
t.close()
#方法二
if __name__ == '__main__': #if __name__ == '__main__' 我们简单的理解就是: 如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。
import string
fp = open('test1.txt')
a = fp.read()
fp.close()
fp = open('test2.txt')
b = fp.read()
fp.close()
fp = open('test3.txt','w+')
l = list(a + b)
l.sort()
s = ''
s = s.join(l)
fp.write(s)
fp.close()
#方法三
with open('test1.txt') as f1, open('test2.txt') as f2, open('2.txt', 'w+') as f3:
for a in f1:
b = f2.read()
c = list(a + b)
c.sort()
d = ''
d = d.join(c)
f3.write(d)
#练习100:列表转换为字典
i = ['a','b']
l = [1,2]
print dict([l,i])
#练习26,:利用递归方法求5!
def fact(j):
sum=0
if j==0:
sum=1
else:
sum=j*fact(j-1)
return sum
print fact(5)
#练习27
def output(s,l):
if l==0:
return
print (s[l-1])
output(s,l-1)
s=raw_input('Input a string:')
l=len(s)
output(s,l)
i=int(raw_input('净利润:'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
for idx in range(0,6):
if i>arr[idx]:
r+=(i-arr[idx])*rat[idx]
print (i-arr[idx])*rat[idx]
i=arr[idx]
print r
# ---------------------------------------------------分割线------------------------------------------------------------
# 自定义了一个简单的数据(Python中的字典类型),要想Python中的字典能够被序列化到json文件中请使用双引号!双引号!双引号!
import json
data_obj = {
"北京市": {
"朝阳区": ["三里屯", "望京", "国贸"],
"海淀区": ["五道口", "学院路", "后厂村"],
"东城区": ["东直门", "崇文门", "王府井"],
},
"上海市": {
"静安区": [],
"黄浦区": [],
"虹口区": [],
}
}
"""
dumps:序列化一个对象
sort_keys:根据key排序
indent:以4个空格缩进,输出阅读友好型
ensure_ascii: 可以序列化非ascii码(中文等)
"""
s_dumps = json.dumps(data_obj, sort_keys=True, indent=4, ensure_ascii=False)
print(s_dumps)
# ---------------------------------------------------分割线------------------------------------------------------------
"""
dump:将一个对象序列化存入文件
dump()的第一个参数是要序列化的对象,第二个参数是打开的文件句柄
注意打开文件时加上以UTF-8编码打开
* 运行此文件之后在统计目录下会有一个data.json文件,打开之后就可以看到json类型的文件应该是怎样定义的
"""
with open("data.json", "w", encoding="UTF-8") as f_dump:
s_dump = json.dump(data_obj, f_dump, ensure_ascii=False)
print(s_dump)
# ---------------------------------------------------分割线------------------------------------------------------------
"""
load:从一个打开的文件句柄加载数据
注意打开文件的编码
"""
with open("data.json", "r", encoding="UTF-8") as f_load:
r_load = json.load(f_load)
print(r_load)
# ---------------------------------------------------分割线------------------------------------------------------------
"""
loads: 从一个对象加载数据
"""
r_loads = json.loads(s_dumps)
print(r_loads)
arg = '{"bakend": "www.oldboy.org", "record": {"server": "100.1.7.9", "weight": 20, "maxconn": 30}}'
a = json.loads(input('请输入添加的数据:'),encoding='utf-8')
print(a)
TAG:
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | ||||||||
3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
31 |
我的存档
数据统计
- 访问量: 8953
- 日志数: 11
- 建立时间: 2009-12-24
- 更新时间: 2019-03-29