python基础练习(三)

代码

# 模块包含所有你定义的函数和变量的文件,其后缀名是.py。
# 模块可以被别的程序引入,以使用该模块中的函数等功能
import sys
print("命令行参数:")
for i in sys.argv:
    print(i)
print("路径为:", sys.path)

# 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
import support
support.print_func("Lisi")

# from fibo import fib, fib2
# from fibo import *
import fibo
fibo.fib(1000)
print(fibo.fib2(1000))
print(fibo.__name__)

for x in range(1, 11):
    print(repr(x).rjust(2), repr(x * x).rjust(3), end=' ')
    # 注意前一行 'end' 的使用
    print(repr(x * x * x).rjust(4))

# {0:2d} 表示第一个参数x的格式。0 代表x,:2d 表示两个宽度的10进制数显示。
# print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
# ljust() , center(),zfill()会在数字的左边填充 0
print('12'.zfill(5))

# str.format()
# 括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换
print('{}是天下第一的{}'.format('lisi', '厨子'))
print('{1}是天下第一的{0}'.format('lisi', '厨子'))
print('{name}是天下第一的{profession}'.format(name='lisi', profession='厨子'))

import math
print('π的近似值是:{:.3f}'.format(math.pi))
table = {"Google": 1, "Taobao": 2, "Tercent": 3}
for name, order in table.items():
    print('{:10} ==> {:7d}'.format(name, order))
print('Tercent: {0[Tercent]};Taobao: {0[Taobao]:d}; Google: {0[Google]}'.format(table))
print('Taobao: {Taobao}; Google: {Google:d}; Tercent: {Tercent}'.format(**table))

# open(filename, mode)读和写文件
'''
r	以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb	以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
r+	打开一个文件用于读写。文件指针将会放在文件的开头。
rb+	以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w	打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb	以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+	打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+	以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a	打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+	打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
'''

f = open("dialog.txt", "w")
txt = f.write("Lisi:今天天气好吗?\nWanger:好个锤子!\nLisi:真是个锤子。")
# 返回输入的字符数
print(txt)
f.close()

# f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回
f = open("dialog.txt", "r")
txt = f.read()
print(txt)
f.close()

# f.readline() 会从文件中读取单独的一行
f = open("dialog.txt", "r")
txt = f.readline()
print(txt)
f.close()

# f.readlines() 将返回该文件中包含的所有行。
f = open("dialog.txt", "r")
txt = f.readlines()
print(txt)
f.close()

# 迭代一个文件对象然后读取每行
f = open("dialog.txt", "r")
for line in f:
    print(line, end='')
f.close()

# 要写入一些不是字符串的东西, 那么将需要先进行转换
f = open("foo1.txt", "w")
value = ('www.ggggbaby.com', 14)
s = str(value)
s2 = str(table)
# 指针位置
print(f.tell())
f.write(s)
print(f.tell())
f.write(s2)
print(f.tell())
f.close()

# 如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。
# from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:
# seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
# seek(x,1) : 表示从当前位置往后移动x个字符
# seek(-x,2):表示从文件的结尾往前移动x个字符


from urllib import request
response = request.urlopen("http://www.baidu.com/")  # 打开网站
fi = open("project.txt", 'w')  # open一个txt文件
page = fi.write(str(response.read()))  # 网站代码写入
fi.close()  # 关闭txt文件

# pickle 模块
# pickle.dump(obj, file, [,protocol])
# pickle.load(file)
import pickle
# 使用pickle模块将数据对象保存到文件
data1 = {'a': [1, 2.0, 3, 4+6j],
         'b': ('string', u'Unicode string'),
         'c': None}
selfref_list = [1, 2, 3]
selfref_list.append(selfref_list)
output = open('data.pkl', 'wb')
# Pickle dictionary using protocol 0.
pickle.dump(data1, output)
# Pickle the list using the highest protocol available.
pickle.dump(selfref_list, output, -1)
output.close()
import pprint, pickle
#使用pickle模块从文件中重构python对象
pkl_file = open('data.pkl', 'rb')
data1 = pickle.load(pkl_file)
pprint.pprint(data1)
data2 = pickle.load(pkl_file)
pprint.pprint(data2)
pkl_file.close()

结果

命令行参数:
D:/Users/jma/PycharmProjects/test/test.py
路径为: ['D:\\Users\\PycharmProjects\\test', 'D:\\Users\\PycharmProjects\\test', 'D:\\Program Files\\Python\\Python37\\python37.zip', 'D:\\Program Files\\Python\\Python37\\DLLs', 'D:\\Program Files\\Python\\Python37\\lib', 'D:\\Program Files\\Python\\Python37', 'D:\\Users\\PycharmProjects\\test\\venv', 'D:\\Users\\PycharmProjects\\test\\venv\\lib\\site-packages', 'D:\\Users\\PycharmProjects\\test\\venv\\lib\\site-packages\\setuptools-40.8.0-py3.7.egg', 'D:\\Users\\PycharmProjects\\test\\venv\\lib\\site-packages\\pip-19.0.3-py3.7.egg']
Hello!  Lisi
我来自另一模块
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
fibo
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
00012
lisi是天下第一的厨子
厨子是天下第一的lisi
lisi是天下第一的厨子
π的近似值是:3.142
Google     ==>       1
Taobao     ==>       2
Tercent    ==>       3
Tercent: 3;Taobao: 2; Google: 1
Taobao: 2; Google: 1; Tercent: 3
37
Lisi:今天天气好吗?
Wanger:好个锤子!
Lisi:真是个锤子。
Lisi:今天天气好吗?

['Lisi:今天天气好吗?\n', 'Wanger:好个锤子!\n', 'Lisi:真是个锤子。']
Lisi:今天天气好吗?
Wanger:好个锤子!
Lisi:真是个锤子。0
24
64
{'a': [1, 2.0, 3, (4+6j)], 'b': ('string', 'Unicode string'), 'c': None}
[1, 2, 3, <Recursion on list with id=48570952>]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值