网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
f.tell()
f.close()
#### 拷贝文件:
f1 = open(‘/bin/ls’, ‘rb’)
f2 = open(‘/tmp/list’, ‘wb’)
data = f1.read()
f2.write(data)
f1.close()
f2.close()
[root@room9pc01 tmp]# md5sum /bin/ls /tmp/list
a78c13d806e594dc4014d145d689f23d /bin/ls
a78c13d806e594dc4014d145d689f23d /tmp/list
src_fname = ‘/bin/ls’
dst_fname = ‘/tmp/list2’
src_fobj = open(src_fname, ‘rb’)
dst_fboj = open(dst_fname, ‘wb’)
#就像商品供货的例子
while 1:
data = src_fobj.read(4096)
if data == b’‘:
#if len(data) == 0:
#if not data : 空串(b’')为假,取反为真
break
else:
dst_fboj.write(data)
src_fobj.close()
dst_fboj.close()
## 函数:
1. 使用def定义
2. 调用函数务必使用()
3. 函数一般都需要有一个返回值
* 返回值使用return关键字指定
* 没有return默认返回None
![](https://img-blog.csdnimg.cn/76cde03e8a5646d5b56df13cf8e77199.png)
def add():
… result = 10 + 20
…
a = add()
print(a)
None
------通过上面的例子可以知道,需要return返回值,不然只会默认输出None----
###########函数############
def mk_fib():
fib = [0,1] #函数内部的变量是局部变量,只能在函数内使用
n = int(input('长度: '))
for i in range(n - 2):
fib.append(fib[-1] + fib[-2])
return fib#返回的是fib代表的列表,而不是返回变量
a = mk_fib()#调用函数时,必须用(),调用函数就是执行函数的代码
print(a)
b = [i * 2 for i in a]
print(b)
with open(‘/tmp/fib.txt’, ‘w’) as fobj:
# 需要把列表转成str字符串后再写入文件,否则报错
fobj.write(str(a))
#############################
### 函数参数:
![](https://img-blog.csdnimg.cn/9f455c98dade42349c2ac35173360ea6.png)
#### 传递参数:
![](https://img-blog.csdnimg.cn/ab3fcdf3be894e8b93d3bdcefe310a1f.png)
def mk_fib(n):
fib = [0,1] #函数内部的变量是局部变量,只能在函数内使用
for i in range(n - 2):
fib.append(fib[-1] + fib[-2])
return fib#返回的是fib代表的列表,而不是返回变量
a = mk_fib(5)#调用函数时,必须用(),调用函数就是执行函数的代码
print(a)
b = [i * 2 for i in a]
print(b)
with open(‘/tmp/fib.txt’, ‘w’) as fobj:
# 需要把列表转成str字符串后再写入文件,否则报错
fobj.write(str(a))
n = int(input('长度: '))
c = mk_fib(n)
print©
#### 位置参数:
位置参数保存在sys模块的argv列表中
![](https://img-blog.csdnimg.cn/3f38ce0b0e7f420f9e0dda2800c2c233.png)
>
> import sys
>
>
> print(sys.argv)
>
>
> # python3 01.py xixi haha 123
>
>
> ['01.py', 'xixi', 'haha', '123']
>
>
>
#### 默认参数:
###默认参数###
def pstar(num = 20):
print(‘*’ * num)
pstar()
pstar(50)
#### 拷贝函数:
import sys
def copy(src_fname, dst_fname):
src_fobj = open(src_fname, ‘rb’)
dst_fboj = open(dst_fname, ‘wb’)
#就像商品供货的例子
while 1:
data = src_fobj.read(4096)
if data == b’‘:
#if len(data) == 0:
#if not data : 空串(b’')为假,取反为真
break
else:
dst_fboj.write(data)
src_fobj.close()
dst_fboj.close()
copy(sys.argv[1],sys.argv[2])
(nsd1907) [root@room9pc01 day03]# python 01.py /etc/fstab /tmp/cp.txt
(nsd1907) [root@room9pc01 day03]# md5sum /etc/fstab /tmp/cp.txt
48ff680b643791cafc6d825ea978321f /etc/fstab
48ff680b643791cafc6d825ea978321f /tmp/cp.txt
## 模块:
* 一个以.py结尾的python文件就是一个模块
* 文件代码的物理组织形式,模块是逻辑形式
* 将文件名的.py扩展名去除,得到的就是模块名
* 模块名也是一个名词,它也要满足相关的约定(首字符:字母下划线,后续字母数字下划线)
vim star.py
hi = ‘hello shabichao’
def pstar(n=30):
print(‘*’ * n)
import star
star.
star.hi star.pstar(
star.hi
‘hello shabichao’
star.pstar()
star.pstar(50)
### 导入模块:
import star # 常用
print(star.hi)
star.pstar()
from random import choice, randint # 常用
print(choice(‘abcd’))
print(randint(1, 100))
import sys, getpass # 不常用
import getpass as gp # 导入模块时,给模块取别名,不常用
upass = gp.getpass()
print(upass)
### 模块特性:
###
(nsd1907) [root@room9pc01 day03]# echo ‘print(name)’ > foo.py
(nsd1907) [root@room9pc01 day03]# echo ‘import foo’ > bar.py
(nsd1907) [root@room9pc01 day03]# cat foo.py
print(name)
(nsd1907) [root@room9pc01 day03]# cat bar.py
import foo
(nsd1907) [root@room9pc01 day03]# python3 foo.py
main
(nsd1907) [root@room9pc01 day03]# python3 bar.py
foo
#####################调用模块或者之后使用py脚本######################
hi = ‘hello shabichao’#全局变量之后才可以调用
def pstar(n=30):
print(‘*’ * n)
if name == ‘main’:
print(hi)
pstar()
pstar(50)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img-T9CJJpfk-1714849562352)]
[外链图片转存中…(img-27a0viaL-1714849562352)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!