我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python之路,Python基础篇3

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python之路,Python基础篇3

1、set
	无序,不重复序列、可嵌套
2、函数
	==》 定义函数,函数体不执行,只有调用函数时,函数体才执行
	1、def
	2、名字
	3、函数体
	4、返回值
	5、参数
		普通参数
		指定参数
		默认参数
		动态参数
			*args
			**kwargs
		万能参数
			*args,**kwargs
	6、补充:
		a.
			def f1
			def f2
			函数重新赋值
		b. 引用
		c.全局变量
			读,均可读
			赋值,先global
			字典,列表,可修改
			
			==》全局变量用大写
3、三元运算
4、lamba表达式


函数:

编程分为两种:
面向过程、面向对象

断点:可以查看函数的执行过程

def f1():
	asdf
	asdfasd
	asdfas

# 1、def 关键字,创建函数
# 2、函数名
# 3、()
# 4、函数体
# 5、返回值


发送邮件实例
def sendmail():
    try:
		import smtplib
		from email.mime.text import MIMEText
		from email.utils import formataddr

		msg = MIMEText('邮件内容', 'plain', 'utf-8')
		msg['From'] = formataddr(["银子", 'xxx@126.com'])
		msg['To'] = formataddr(["金子", 'yyy@qq.com'])
		msg['Subject'] = "主题"

		server = smtplib.SMTP("smtp.126.com", 25)
		server.login("xxx@126.com", "123")
		server.sendmail('xxx@126.com', ['yyy@qq.com', ], msg.as_string())
		server.quit()
    except:
        # 发送失败
        return "失败"
    else:
        # 发送成功
        return "cc"
ret = sendmail()

print(ret)
if ret == "cc":
print('发送成功')
else:
print("发送失败")
"""
# print(123)

# def f1():
#     print(123)
#     # 在函数中,一旦执行return,函数执行过程立即终止
#     return "111"
#     print(456)
#
# r = f1()
# print(r)
# def f2():
#     print(123)
#
# r = f2()
# print(r)
如果函数没有返回值,python自动默认return None

# 形式参数
如果没有return,python会默认返回None

# 1、普通参数(严格按照顺序,将实际参数赋值给形式参数)
# 2、默认参数(必须放置在参数列表的最后)
# 3、指定参数(将实际参数赋值给制定的形式参数)
# 4、动态参数:
#        *      默认将传入的参数,全部放置在元组中, f1(*[1`1,22,33,44])
#        **     默认将传入的参数,全部放置在字典中   f1(**{"kl":"v1", "k2":"v2"})
# 5、万能参数,   *args,**kwargs ,一个* 只能在前面,两个* 只能在后面

默认参数
def send(xxoo, content, xx="OK"):
print(xxoo, content, xx)
# print("发送邮件成功:", xxoo, content)
return True
send('alex', "sb")
send('alex', "sb", "BB")

普通参数
def send(xxoo,content):
    print(xxoo,content)
    return True
send('alex',"sb")

指定参数
def send(xxoo,content):
    print(xxoo,content)
    return True
send('alex',"sb")

def f1(*args):
    print(args,type(args))
li=[11,22,33,"alex"]
f1(li)
f1(*li)

如果列表前面也有*,将把所有值传到元组中,可以接收动态参数。
def f1(**args):
    print(args,type(args))
# f1(n1="alex",n2=18)
dic = {'k1':"v1","k2":"v2"}
# f1(kk=dic)
f1(**dic)

万能参数,一个* 只能在前面,两个* 只能在后面
def f1(*args,**kwargs):
    print(args)
    print(kwargs)
f1(11,22,33,44,k1="v1",k2="v2")

利用动态参数实现format功能

s = "i am {0}, age {1}".format("alex",18)
print(s)
s = "i am {0}, age {1}".format(*["alex",18])
print(s)

s1 = "i am {name}, age {age}".format(name="alex",age=18)
print(s1)
dic = {'name':'alex',"age":18}
s1 = "i am {name}, age {age}".format(**dic)
print(s1)

补充1:
python 内部有一套自己的垃圾回收机制,自动回收垃圾。
def f1(a1,a2):
    return a1 +a2
def f1(a1,a2):
    return a1*a2
ret = f1(8,8)
print(ret)

补充2:
函数参数传递是引用:
def f1(a1):
    a1.append(999)
li=[11,22,33,44]
f1(li)
print(li)

补充3:
# 全局变量,所有作用域都可读
# 对全局变量进行【重新赋值】,需要global
# 特殊:列表字典,可修改,不可重新赋值
# 所有的全局变量必须全部是大写。
NAME="alex"

def f1():
    age =18
    # global name # 表示,name是全局变量
    # print(name)
    # name.append(999)
    print(age,NAME)
def f2():
    age = 19
    print(age,NAME)
f1()
f2()

实例:函数式编程实现登陆和注册

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Alex Li

def login(username, password):
"""
用于用户登录
:param username: 用户输入的用户名
:param password: 用户输入的密码
:return: true,表示登录成功;false,登录失败
"""
f = open("db", 'r')
for line in f:
line_list = line.strip().split("|")
if line_list[0] == username and line_list[1] == password:
return True
return False

def register(username, password):
"""
用于用户注册
:param username: 用户名
:param password: 密码
:return: 默认None
"""
f = open("db", 'a')
temp = "\n" + username + "|" + password
f.write(temp)
f.close()

def main():
t = input("1:登录;2:注册")
if t == "1":
user = input("请输入用户名:")
pwd = input("请输入密码:")
r = login(user, pwd)
if r:
print("登录成功")
else:
print("登录失败")
elif t == "2":
user = input("请输入用户名:")
pwd = input("请输入密码:")
register(user, pwd)
main()

# 三元运算,三目运算,if else简写
"""
if 1 == 1:
name = "alex"
else:
name = "SB"

# 如果 1==1 成立,
# name = "alex"
# 否则
# name = "SB"

name = "alex" if 1 == 1 else "SB"
"""

lambda表达式

def f1(a1):
    return a1 + 100
    
f2 = lambda a1, a2=9: a1 + a2 + 100

ret = f1(10)
print(ret)

r2 = f2(9)
print(r2)

内置函数

abs()
all()
any()
bool()
ascii()
bin()
oct()
hex()
bytes()

# abs绝对值
# n = abs(-1)
# print(n)

# 所有为真,才为真
# n = all([1,2,3,None])
# print(n)
# 只要有真,就为真
# n = any([[],0,"",None])
# print(n)

# 0,None,"", [], ()  都为False
# 注意" "中间有空格,此为True。
# print(bool(()))

# ascii() # 自动执行对象的 __repr__
# class Foo:
#     def __repr__(self):
#         return "444"
#
# n = ascii(Foo())
# print(n)

# bin() 八进制
# oct() 十进制
# hex() 十六进制
# print(bin(5))
# print(oct(9))
# print(hex(15))

"""
# utf-8 一个汉字:三个字节
# gbk 一个汉字:二个字节
# utf-8
s = "李杰"
# 一个字节8位,一个汉字三个字节
#  0101010 10101010 101010101  0101010 10101010 101010101
#     23     23      23           23     23      23  15
#     2f     2a      2c           2c     2e      2f  f
# 字符串转换字节类型
# bytes(只要转换的字符串, 按照什么编码)
n = bytes("李杰", encoding="utf-8")
print(n)
n = bytes("李杰", encoding="gbk")
print(n)
# 字节转化成字符串
new_str = str(bytes("李杰", encoding="utf-8"), encoding="utf-8")
"""

文件操作之打开模式

open函数,该函数用于文件处理
文件操作分为三个步骤:打开文件、操作文件、关闭文件
# 1、打开文件
#文件句柄 = open('文件路径', '模式')
打开文件的模式有:
# f = open('db', 'r') # 【默认】
# f = open('db', 'w') # 【不可读;不存在则创建;存在则清空内容;】
# f = open('db', 'x') # 【不可读;不存在则创建,存在则报错】
# f = open('db', 'a') # 【可读;   不存在则创建;存在则只追加内容;】

“+” 表示可以同时读写某个文件:
# f = open('db', 'r+')读写【可读,可写】使用得最多得是r+
# f = open('db', 'w+')写读【可读,可写】w+每次写文件,首先会清空文件内容
# f = open('db', 'x+')写读【可读,可写】x+当前文件存在,就报错
# f = open('db', 'a+')写读【可读,可写】a+每次写文件,都会写到最后

“b”表示以字节的方式操作:
rb  或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型

# f = open('db','r', encoding="utf-8")
# data = f.read()
# print(data, type(data))
# f.close()

# f = open('db','r')
# data = f.read()
# print(data,type(data))

# f = open('db','rb')
# data = f.read()
# print(data,type(data))

# f = open("db", 'a')
# f.write("李杰")
# f.close()
#
# f = open("db", 'ab')
# f.write(bytes("李杰", encoding="utf-8"))
# f.close()

# f = open("db", 'r+', encoding="utf-8")
# # f.fileno()
# # 如果打开模式无 b,则read,按照字符读取
# data = f.read(1)
# # tell当前指针所在的位置(字节)
# print(f.tell())
# # 调整当前指着你的位置(字节)
# f.seek(f.tell())
# # 当前指针位置开始向覆盖
# f.write("888")
# f.close()

# 2、操作文件

# read() # 无参数,读全部;有参数,
#                                    b,按字节
#                                    无b,按字符
# tell() 获取当前指针位置(字节)
# seek(1) 指针跳转到指定位置(字节)
# write() 写数据,b,字节;无b,字符
# close
# fileno
# flush 强刷
# readline 仅读取一行
# truncate 截断,指针为后的清空
# for循环文件对象 f = open(xxx)
# for line in f:
#     print(line)

# f = open("db", 'r+', encoding="utf-8")
# f.seek(3)
# f.truncate()
# f.close()
# f = open("db", 'r+', encoding="utf-8")
# for line in f:
#     print(line)

# 通过源码查看功能
# 3、关闭文件

# f.close()
# with open('xb') as f:
#     pass
with open('xb') as f:
pass

with可以同时打开多个文件,从2.7开始添加的新功能。

with open('db','r',encoding="utf-8") as f1,open("db1",'w',encoding="utf-8") as f2:
times = 0
for line in f1:
times += 1
if times <= 10:
f2.write(line)
else:
break

替换文件:
with open('db','r',encoding="utf-8") as f1,open("db1",'w',encoding="utf-8") as f2:
    for line in f1:
    new_str = line.replace("alex","luchuan")
    f2.write(new_str)
		
with open('db1', 'r', encoding="utf-8") as f1, open("db2", 'w',encoding="utf-8") as f2:
    for line in f1:
        if line == "xx":
            f2.write()
            f2.write()
        # new_str = line.replace("alex", 'st')
        # f2.write(new_str)
        
        
class TextIOWrapper(_TextIOBase):
"""
Character and line based layer over a BufferedIOBase object, buffer.
encoding gives the name of the encoding that the stream will be
decoded or encoded with. It defaults to locale.getpreferredencoding(False).
errors determines the strictness of encoding and decoding (see
help(codecs.Codec) or the documentation for codecs.register) and
defaults to "strict".
newline controls how line endings are handled. It can be None, '',
'\n', '\r', and '\r\n'.  It works as follows:
* On input, if newline is None, universal newlines mode is
enabled. Lines in the input can end in '\n', '\r', or '\r\n', and
these are translated into '\n' before being returned to the
caller. If it is '', universal newline mode is enabled, but line
endings are returned to the caller untranslated. If it has any of
the other legal values, input lines are only terminated by the given
string, and the line ending is returned to the caller untranslated.
* On output, if newline is None, any '\n' characters written are
translated to the system default line separator, os.linesep. If
newline is '' or '\n', no translation takes place. If newline is any
of the other legal values, any '\n' characters written are translated
to the given string.
If line_buffering is True, a call to flush is implied when a call to
write contains a newline character.
"""

def close(self, *args, **kwargs): # real signature unknown
关闭文件
pass

def fileno(self, *args, **kwargs): # real signature unknown
文件描述符
pass

def flush(self, *args, **kwargs): # real signature unknown
刷新文件内部缓冲区
pass

def isatty(self, *args, **kwargs): # real signature unknown
判断文件是否是同意tty设备
pass

def read(self, *args, **kwargs): # real signature unknown
读取指定字节数据
pass

def readable(self, *args, **kwargs): # real signature unknown
是否可读
pass

def readline(self, *args, **kwargs): # real signature unknown
仅读取一行数据
pass

def seek(self, *args, **kwargs): # real signature unknown
指定文件中指针位置
pass

def seekable(self, *args, **kwargs): # real signature unknown
指针是否可操作
pass

def tell(self, *args, **kwargs): # real signature unknown
获取指针位置
pass

def truncate(self, *args, **kwargs): # real signature unknown
截断数据,仅保留指定之前数据
pass

def writable(self, *args, **kwargs): # real signature unknown
是否可写
pass

def write(self, *args, **kwargs): # real signature unknown
写内容
pass

def __getstate__(self, *args, **kwargs): # real signature unknown
pass

def __init__(self, *args, **kwargs): # real signature unknown
pass

@staticmethod # known case of __new__
def __new__(*args, **kwargs): # real signature unknown
""" Create and return a new object.  See help(type) for accurate signature. """
pass

def __next__(self, *args, **kwargs): # real signature unknown
""" Implement next(self). """
pass

def __repr__(self, *args, **kwargs): # real signature unknown
""" Return repr(self). """
pass

buffer = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
closed = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
encoding = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
errors = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
line_buffering = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
name = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
newlines = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
_CHUNK_SIZE = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
_finalizing = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
3.x

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python之路,Python基础篇3

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python之路,Python基础篇3

1、set无序,不重复序列、可嵌套2、函数==》 定义函数,函数体不执行,只有调用函数时,函数体才执行1、def2、名字3、函数体4、返回值5、参数普通参数指定参数默认参数动态参数*args**kwargs万能参数*args,**kwarg
2023-01-31

python之路-基础篇3

作业:1、每周写一篇博客2、编写登录接口     输入用户名密码     认证成功后显示欢迎信息     输错三次后锁定3、多级菜单     三级菜单     可依次选择进入各子菜单     所需新知识点:列表、字典data = {"水果"
2023-01-31

python之路-基础篇

python基础第一章1、python介绍python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  
2023-01-31

Python之路,Python基础篇(第

一、Python介绍:python的创始人为吉多·范罗苏姆(Guido van Rossum),俗称龟叔。在圣诞节期间为打发无聊而开发得语言。Python是一门什么语言:Python是一门解释性的语言Python的优缺点:Python语言,
2023-01-31

python之路,Python基础篇2(

一、.pyc是个什么鬼:pyc文件其实是PyCodeObject的一种持久化保存方式。二、数据类型1、数字:2 是一个整数的例子。长整数 不过是大一些的整数。3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4
2023-01-31

python之路-基础篇5

1、字符串常用操作#字符串操作name = "my name is kk"print(name.capitalize())  #>>>My name is kk#capitalize()  #首字母大写print(name.count("a
2023-01-31

python之路-基础篇2

10、if else 流程判断举例说明1:import getpass  #引用getpass这个模块_username = "kk"_password = "123456"username = input("username:")pass
2023-01-31

python之基础篇(四)

防伪码:忘情公子著本篇我们来说说python的内置对象类型及其运算。  python有许多的内置类型,我们为什么要使用内置类型呢?python编程时是尽量去使用自定义类型还是尽可能多的使用内置类型呢?  内置类型对python本身来讲它的理
2023-01-31

python之基础篇(一)

防伪码:忘情公子著一、python介绍  python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。  python语法简洁明晰,特色之一是强制用空白符
2023-01-31

python之基础篇(二)

防伪码:忘情公子著一、面向过程与面向对象  面向过程:    以指令为中心,由指令去处理数据    只要考虑如何组织代码去解决问题  面向对象:    以数据为中心,所有的处理代码都围绕数据展开    要考虑如何设计数据结构组织数据,并且提
2023-01-31

python之基础篇(三)

防伪码:忘情公子著python编程基础及编程风格:  语句和语法    注释:      #:可以从一行的任何地方开始    续行:      \:只能在行尾      ''':闭合操作符,单一语句跨多行。实现多行注释、内置文档等功能   
2023-01-31

Python之路(二)Python基础

执行Windows方式一D:\Python\python.exe D:\Python17\DAY01\Helloworld.py方式二D:\Python\python.exeLinux方式一[root@linux-node1 ~]# /us
2023-01-31

python学习之路--python基础

本文主要介绍下python列表的的一些基本操作列表是我们在python编程中常用的数据类型之一,通过列表我们可以对数据实现最方便的存储、修改等操作。定义列表 1 names=['ZhangSan','LiSi','WangWu'] 列表的访
2023-01-30

python基础篇之bool类型

Python中布尔类型 我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:与运算:只有两个布尔值都为 True 时,计算结果才为 True。True and True #
2023-01-31

Python基础篇-Python基础语法

为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname
2023-01-31

python基础3

python基础3 交换:a,b=b,a相当于定义了一个元组t=(b,a)然后将t[0]的值给了a,t[1]的值给了b####字典####定义用花括号集合定义若为空的话,会默认为字典,所以集合不能为空子典只能通过关键字来查找值,因为字典是k
2023-01-31

python 基础篇(一)

默认的python的文件为:文件名.py #!/usr/bin/env python   # coding=utf-8     对中文的支持(切记:等号两边没有空格)执行python 文件:[root@localhost Desktop]#
2023-01-31

Python基础篇之初识Python必看攻略

Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 Python和其他语言
2022-06-04

Python面试宝典之基础篇-04

接着更新Python常见的面试题!
2023-06-01

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录