柏老师Python笔记(三)

# encoding: utf-8
"""
author: Leo
date: 2017-6-15
"""
import random
from math import sqrt
import os
import fileinput
ls_line = ['hello', 'I am jinjiao', 'Welcome you', '']


for word in ls_line:
    print word


print(range(0, -9, -1))


print(range(0, -9, -2))


output = []
for i in range(1, 100):
    if i % 3 == 0:
        output.append(i)


print(output)


# 所有的序列类型对象都能够用for循环,
name_str = 'jinjiao'
for i in name_str:
    print i,


name_list = list(name_str)
for i in name_list:
    print i,


name_set = set(name_str)
for i in name_set:
    print i,


name_tunple = tuple(name_str)
for i in name_tunple:
    print i,


name_dict = {'name': 'jinjiao', 'lang': 'python', 'website': 'jinjiao.com'}


for i in name_dict:
    print i, '-->', name_dict[i]


# 这是一种获取字典键/值对的方法,得到一个关于字典的列表,列表中的元素是由字典的建和值组成的元祖
for k, v in name_dict.items():
    print k, v




# zip方法的使用


a = 'jinjiao'
b = 'yinjiao'


print(zip(a, b))


# 如果序列长度不相同则以最短的为准
c = [2, 4, 6, 8]
b = [11, 13, 15, 17]
print(zip(c, b))


# 如果对应的序列类型为字典类型时,只返回键的值
s = {'name': 'jinjiao'}
t = {'lang': 'python'}
print(zip(s, t))


result = [(2, 11), (4, 13), (6, 15), (8, 17)]
print(zip(*result))


# zip用来转换字典将原来的键值调换{'python': 'lang', 'jinjiao': 'name', 'jinjiao.github.io': 'site'}
yinfor = {'name': 'jinjiao', 'site': 'jinjiao.github.io', 'lang': 'python'}
print(dict(zip(yinfor.values(), yinfor.keys())))


# 枚举类型enumerate(),可以同时得到元素索引和元素


week = ['jin', 'jiao', 'da', 'wang', 'shi', 'cao', 'ren']
for i in range(len(week)):
    print week[i] + 'is' + str(i)   # 这里的i是int类型,不能和前面的字符串相连接,如果要连接必须要转换为字符串类型




# enumerate()可以实现同样的功能,首先是返回索引地址,然后再返回对应的值


for (i, day) in enumerate(week):
    print day + 'is' + str(i)


seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(seasons)))


raw = 'Do you love Beijing, Beijing is a beautiful city'
# 不能对字符串直接使用enumerate(),因为它会变成这样
# print(list(enumerate(raw)))
# 我们需要先将我们的字符串变成列表的形式
raw_list = raw.split(' ')
print(raw_list)


for (i, string) in enumerate(raw_list):
    if 'Beijing' in string:
        raw_list[i] = 'ShangHai'
print raw_list


# 列表解析
squares = [x ** 2 for x in range(1, 10)]
print(squares)


mybag = [' glass   ', '   apple', '    green leaf']
print([one.strip() for one in mybag])




# while循环
# xnum = random.randint(0, 9)
# i = 0
# while i < 4:
#     print('***********************************')
#     num = input('请您输入0到9任一个数:')
#
#
#     x = 3 - i
#     if num == xnum:
#         print('运气真好,您猜对了!')
#         break
#     elif num > xnum:
#         print('你猜大了!\n哈哈,正确答案是:%s\n您还有%s次机会!'%(xnum, x))
#     elif num < xnum:
#         print('你猜小了!\n哈哈,正确答案是:%s\n您还有%s次机会!'%(xnum, x))
#
#     i += 1




# for ... else示例


for n in range(99, 1, -1):
    root = sqrt(n)
    print(n)
    if root == int(root):
        print(n)
        break


else:
    print('Nothing')




# 文件的操作
f = open('test.txt')    # 打开已有的文件
# for循环是一行一行的读取文件的内容,每次扫描一行,遇到行结束符号\n表示结束本行,然后是下一行。
for line in f:
    # print(line)     # 表示每次打印完Line的对象后就换行,也就是打印Line对象之后会增加一个\n.
    print(line),    # 后面加上一个逗号,就去掉了原来默认增加的\n了。


# 这样是获取不到任何额内容的,因为读取文件已经到了文件的末尾了。
for line2 in f:
    print(line2),


# 创建文件
# nf = open('test1.txt', 'w')
# nf.write('This is a file')


fp = open('test1.txt', 'w')
fp.write('My name is Leo.\n My sex is man')
fp.close()


# 为了防止我们忘记使用fp.close()这句话,我们可以这样设置。
# with open('test.txt', 'a') as f:
#     f.write('\nThis is about ')


with open('test.txt', 'r') as f:
    print f.read()  # 读取文件




# 文件的状态


file_stat = os.stat('test.txt')
print(file_stat)


# read()形式读取一个字符串,返回一个字符串
# f = open('you.txt')
# content = f.readline()
# print(content),
# f.close()


# readline()形式读取一个字符串,每次读取一行,最后以行返回字符串.
# f = open('you.txt')
# while True:
#     line = f.readline()
#     if not line:
#         break
#     print line,
#
# f.close()


# readlines()形式读取一个字符串,每次读取一行,最后以行返回的是一个列表
f = open('you.txt')
# while True:
#     line = f.readlines()
#     if not line:
#         break
#     print line,
#
# f.close()
# 这样可以使用for循环来实现我们的迭代功能,之所以能够迭代是因为file是一个可迭代的数据类型。
# #


# 当我们读取很大文件的时候我们可以使用fileinput模块
# for line in fileinput.input('you.txt'):
#     print line,
# f.close()


# seek功能是让指针移动
f = open('you.txt')
f.readline()
f.readline()
print(f.readline())


# 让我们的文件指针回到开头
f.seek(0)
print(f.readline())


# 指针的位置可以用tell()来显示
print(f.tell())


a = ['2', '3', '4', '5']
print(a[: -1])


# 迭代


lst = ['q', 'i', 'w', 's', 'i', 's']
lst_iter = iter(lst)    # iter()是一个内建函数,表示为迭代类型
print(lst_iter.next())  # 获取下一个元素
print(lst_iter.next())
print(lst_iter.next())



































































































你可能感兴趣的:(Python学习)