学无止境,贵在坚持!

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:

 

评分:0

我来说两句

Open Toolbar