current position:Home>Python basic exercises (3)

Python basic exercises (3)

2022-11-08 04:25:45geniushorse

代码

# Modules contain files for all the functions and variables you define,其后缀名是.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 Represents two widths10进制数显示.
# 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('{}Is the world's first{}'.format('lisi', '厨子'))
print('{1}Is the world's first{0}'.format('lisi', '厨子'))
print('{name}Is the world's first{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:good hammer!\nLisi:What a hammer.")
# Returns the number of characters entered
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()

# To write something that is not a string, 那么将需要先进行转换
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()))  # Website code is written
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
lisiThe best cook in the world
The chef is the best in the worldlisi
lisiThe best cook in the world
π的近似值是:3.142
Google     ==>       1
Taobao     ==>       2
Tercent    ==>       3
Tercent: 3;Taobao: 2; Google: 1
Taobao: 2; Google: 1; Tercent: 3
37
Lisi:今天天气好吗?
Wanger:good hammer!
Lisi:What a hammer.
Lisi:今天天气好吗?

['Lisi:今天天气好吗?\n', 'Wanger:good hammer!\n', 'Lisi:What a hammer.']
Lisi:今天天气好吗?
Wanger:good hammer!
Lisi:What a hammer.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>]

copyright notice
author[geniushorse],Please bring the original link to reprint, thank you.
https://en.pythonmana.com/2022/312/202211080409467210.html

Random recommended