Python
2019-12-16 10:38:07 0 举报
AI智能生成
登录查看完整内容
Python基础语法
作者其他创作
大纲/内容
Python
Python基础语法
第0关 print()函数与变量
第1关 数据类型与转换
第2关 条件判断与条件嵌套
第3关 input()函数
第4关 列表和字典
第5关 for循环和while循环
第6关 布尔值和四种语句
第7关 项目实操:PK小游戏
第8关 编程思维:如何解决问题
第9关 函数
数据
直接使用数据
print(3) #>>> 3
计算和加工数据
print(2*3) #>>> 6
用数据做判断
i=0;if i>0:;else:
运算符号
\换行符
end=''空格
print('') #用来换行
三引号也可以换行
+= +1
!=不等于
=赋值
转义字符:\\
==等于
大于等于 >=
小于等于 <=
x**2=x²
s%2=0取模即余数为0,商是整数(判断为偶数)
10//3#取整除(做除法返回商的整数部分)
类型
str ( ) 字符串、 float( ) 浮点、int( )整数
列表[ ]
包容多种数据类型,有序
切片读取
左右空,取到头,左要取,右不取
列表生成式
元组()
元组是不可变对象
字典{ }
新增键值对要⽤到赋值语句字典名[键] = 值
d[家]=90#改变字典中的值print(d['家'])#》》900
d={\"Q':[\
函数
format( )格式化函数:str.format()
print('我正在学{}'.format('老板'))
%s字符串 %f 浮点 %d 整数
print()函数
print('')电脑直接执行打印内容
print( )#电脑读懂内容打印
type()函数:查询数据类型
print(type('1')) # '1'属于字符串类'str'print(type(1)) # 1属于整数类'int'print(type([1])) # [1]属于列表类'list'
len( )函数:返回字符串的长度
input()函数
input()返回值是none,input()函数return none
.append()增加元素
a=[]a.append('A')a.append('B')a.append('C')print(a)
del 列表名删除列表
pop()函数,同时完成提取和删除
math.ceil()向上取整
import math是因为使用ceil()函数需要导入math模块
number = math.ceil(size * 80 / time)
bool()函数,来查看一个数据会被判断为真还是假
布尔运算
用数据做逻辑判断的过程叫布尔运算
python 中的真和假 (True 和 和 e False 是布尔值) )
假的
False
0
''(空字符串)
[](空列表)
{}(空字典)
None
其他都是真的
True
5(任意整数) 1.0(任意浮点数)
'苏东坡'(字符串)
布尔值有两种:True 或 False
第一种计算:两个数值做比较
#一共有六种比较方式:==、!=、>、<、>=、<=print(3==3.0) #判断为 Trueprint('a'!='a') #判断为 Falseprint(3>5) #判断为 Falseprint(3<5) #判断为 Trueprint(100>=101) #判断为 Falseprint(100<=101) #判断为 True
第二种计算:直接用数值做运算
第三种计算:布尔值之间的运算
一共有 5 种计算方式:and、or、not、in、not in
extend( )#追加另一个序列中的多个值(用新列表扩展原来的列表)list3.extend( )
sort( )函数 #长久性降序排列 list3.sort( )
list3.sort() #降序排列 sort()函数print(list3)
sorted()临时性排序函数
range ( ) 函数
计算生成一个整数序列
for...in...语句遍历range()函数生成的整数序列
items() 函数
index()函数
用于找出列表中某个元素第一次出现的索引位置。语法为:list.index(obj),obj为object(对象)的缩写。
isinstance( )函数,可以用来判断某个实例是否属于某个类。
write()函数
file1.write('张无忌\')
open()函数
r
r 打开只读⽂件,该⽂件必须存在;r+ 打开可读写的⽂件,该⽂件必须存在。rb+ 读写打开⼀个⼆进制⽂件,只允许读写数据。rt+ 读写打开⼀个⽂本⽂件,允许读和写
w
write()的参数必须是一个字符串,而writelines()可以是序列
w 打开只写文件
w+ 打开可读写文件
若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件
wb 只写打开或新建一个二进制文件;只允许写数据。
图片和音频是以二进制的形式保存
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或建立一个文本文件;允许读写。
a
at+ 读写打开1个文本文件,允许读或在文本末追加数据
ab+ 读写打开1个2进制文件,允许读或在文件末追加数据
a 以附加的方式打开只写文件
a+ 以附加的方式打开可读写的文件
with open...as
避免打开文件后忘记关闭,占用资源或当不能确定关闭文件的恰当时机的时候,我们可以用到关键字with
readlines(),也就是“按行读取”
split( )函数
把字符串分割
join()函数
把字符串合并的
join()的用法是str.join(sequence),str代表在这些字符串之中,你要用什么字符串连接
dir( )函数
import random # 调用random模块print(dir(random))
a = '' # 设置一个字符串print('字符串:')print(dir(a)) # 把字符串相关的函数展示出来a = [] # 设置一个列表print('列表:')print(dir(a)) # 把列表相关的函数展示出来a = {} # 设置一个字典print('字典:')print(dir(a)) # 把字典相关的函数展示出来
调用函数
def ()定义函数
def ()定义函数:例:def math(x): y = x ** 2 + x return ya = math(10)print(a)
变量作用域
guess = ''
定义变量 guess
quantity = 108 #这里的 quantity 是【全局变量】def egg():print(quantity) #函数内的局部作用域,可以访问全局变量egg()
global #【global 语句】可以将局部变量声明为全局变量
def egg():global quantity #【global 语句】可以将局部变量声明为全局变量quantity = 108 #这里的 quantity 是【局部变量】egg()print(quantity) #本来不能访问局部变量,但有 global 把他变为了全局变量
作为函数内部的局部变量,从而可以为函数所用
条件判断
if
单向判断
如果..就..
if...else...
双向判断
如果..不满足...就..
if...elif...else...
多项判断
如果...不满足...就下一个...再下一个
try…except…语句
当用户输错的时候会给予提示
try: age = int(input('请输入一个整数:'))except ValueError: print('要输入整数噢')
try下面可以包含多个except
循环
for 【工作量确定】
for i in range(5): a = int(input('请输入0结束循环,你有5次机会:')) if a == 0: print('你触发了break语句,导致else语句不会生效。') breakelse:print('5次循环你都错过了,else语句生效了。')
while【工作量不确定时】
用while True 开启了一个无限循环
while True常和break语句搭配使用,break表示结束循环,然后去执行循环外部的代码
while True: print('上供一对童男童女') t = input('孙悟空来了吗') if t == '来了': breakprint('孙悟空制服了鲤鱼精,陈家庄再也不用上供童男童女了')
触发continue语句,将跳过之后的代码,直接回到循环的开始。
pass语句什么都不做(常用在语句下)
pass # pass表示'跳过',不执行其他操作
四种新语句
break# 从循环内跳出,必须和 if 语句连用
&
i = 0while i<5:print('明日复明日')i = i+1if i==3: # 当 i 等于 3 的时候触发break # 结束循环,实际打印 3 次
while True: #开启一个无限循环p = input('请输入你的密码:') #循环内部获取用户数据if p == '小龙女': #直到用户输入正确密码break #结束循环print('通过啦')
continue# 跳跃到循环开头,必须和 if 语句连用
# 搭配 for 循环
for i in range(5):print('明日复明日')if i==3: # 当 i 等于 3 的时候触发continue # 回到循环开头print('这句话在 i 等于 3 的时候打印不出来')
搭配 while 循环
i = 0while i<5:print('明日复明日')i = i+1if i==3: # 当 i 等于 3 的时候触发continue # 回到循环开头print('这句话在 i 等于 3 的时候打印不出来')
pass# 为跳过,什么也不做,常用在 if 语句下
a = int(input('请输入一个整数:'))if a >= 100:pass #如果输入的数字>=100,则直接跳过,什么也不做else:print('你输入了一个小于 100 的数字')
else 不但可以和 if 配合使用,也可以跟 for 循环 while 循环使用,正常结束未 break 则执行 else
for i in range(5):a = int(input('请输入 0 来结束循环,你有 5 次机会:'))if a == 0:print('你触发了 break 语句,循环结束,导致 else 语句不会生效。')breakelse:print('5 次循环你都错过了,else 语句生效了。')
山脚循环考试(山脚知识)■考试试题:https://ks.wjx.top/jq/50779961.aspx
第10关 项目实操:PK小游戏
第11关 编程思维:如何debug
第12关 类与对象1
第13关 类与对象2
第14关 项目实操:PK小游戏
编程思维
面向对象编程
对象object
类的创建和调用
class Chinese: eye='black' def eat(self): print('吃饭用筷子')jan=Chinese()print (jan.eye)jan.eat()
类的创建
创建类class Chinese:
类的第一个字母大写
创建属性eye='black'
创建方法
def eat(self):print('吃饭用筷子')
类的调用
类的实例化:jan=Chinese()
实例调用类属性-实例.属性print (jan.eye)
实例调用类的方法-实例.方法jan.eat()
特殊方法
self
self的作用相当于先给实例占了个位置,等到实例创建好就“功成身退,退位让贤”
在类中用def创建方法时,就必须把第一个参数位置留给 self,并在调用方法时忽略它(不用给self传参)
在类的方法内部想调用类属性或其他方法时,就要采用self.属性名或self.方法名的格式
初始化方法(构造函数)
class Chinese:def __init__(self): print('很高兴遇见你,我是初始化方法')person = Chinese()
初始化方法 def __init__(self)
当每个实例对象创建时,该方法内的代码无须调用就会自动运行
__str__打印对象即可打印出该方法中的返回值,而无须再调用方法。
类的继承和定制
继承
多层继承
class B(A)class C(B)
class Cantonese(Chinese):
class Chinese: eye = 'black' def eat(self): print('吃饭,选择用筷子。')class Cantonese(Chinese): pass # pass表示'跳过',不执行其他操作yewen = Cantonese()print(yewen.eye)yewen.eat()
多重继承
定制
定制:在复用代码的基础上,又能满足个性化的需求。
增加
class Chinese: eye = 'black' def eat(self): print('吃饭,选择用筷子。')class Cantonese(Chinese): # 类的继承 native_place = 'guangdong' # 类的定制 def dialect(self): # 类的定制 print('我们会讲广东话。')yewen = Cantonese()print(yewen.eye)# 父类的属性能用print(yewen.native_place)# 子类的定制属性也能用yewen.eat()# 父类的方法能用yewen.dialect()# 子类的定制方法也能用
重写
面向过程编程
第15关 编码和文件读写
第16关 模块
第17关 项目实操:收发邮件
第18关 编程思维:产品思维
第19关 项目实操:毕业项目
编码和文件读写
编码
二进制
1 byte = 8 bit,也就是1字节等于8比特
用来存放一位0或1,就是计算机里最小的存储单位,叫做【位】,也叫【比特】(bit)
规定8个比特构成一个【字节】(byte),这是计算机里最常用的单位。
编码encode()
你想编码的内容.encode(你使用的编码表)
'吴枫'.encode('utf-8')
解码decode()
你想解码的内容.decode(你使用的编码表)
b'\\xe5\\x90\\xb4\\xe6\\x9e\\xab'.decode('utf-8')
文件读写
读
写
模块.py
封装
定义变量需要用赋值语句
封装函数需要用def语句
封装类需要用class语句
建立模块,使用import语句导入其他py文件
import语句
import…as…。比如我们觉得import story太长,就可以用import story as s语句,意思是为“story”取个别名为“s”
from … import …语句可以让你从模块中导入一个指定的部分到当前模块
从模块中指定所有内容直接使用时,可以写成【from xx模块 import *】
*代表“模块中所有的变量、函数、类
if __name__ == '__main__'
程序入口
调用模块
下载安装的方式是打开终端,Windows用户输入pip install + 模块名;苹果电脑输入:pip3 install + 模块名,点击enter即可。(需要预装python解释器和pip)
Python内置模块
time模块
time.sleep(secs)延时函数
time.sleep(1)停顿1s
import time #通常import语句会写到代码的开头time.sleep(secs)
random模块
import random
使用randint()函数(随机整数)需要导入random模块
a = random.choice(luckylist)# 在中奖名单里面随机选择
csv
import csv# dir()函数会得到一个列表,用for循环一行行打印列表比较直观for i in dir(csv):print(i)
csv模块的官方英文教程https://docs.python.org/3.6/library/csv.html
中文教程:https://yiyibooks.cn/xx/python_352/library/csv.html#module-csv
smtplib,email这两个模块
群发邮件
调用 smtplib 模块下、SMTP 类下的方法,应该这样写:smtplib.SMTP.方法
server = smtplib.SMTP()
server.quit()退出服务器
email 模块
QQ办公活动端的信息传递,内容为活动内容,而且免费,暂时没有数据反馈到达率,呵呵呵
smtplib是用来发送邮件用的
email是用来构建邮件内容的
MyQR
调用他人模块
爬虫时我们会需要用到requests这个库
数据分析需要用到pandas和NumPy模块
import numpy as np
网页开发要用到Django模块
项目
变量
变量名为writer实例:writer = csv.writer(x),然后使用writer.writerow(列表)就可以给csv文件写入一行列表中的内容。
常见报错类型
python异常处理教程:https://www.runoob.com/python/python-exceptions.html
跳出whileTrue死循环的方法
ctrl+c
TabError: Tab 和空格混用
IndentationError:缩进错误
TypeError:类型错误
AttributeError:属性错误
NameError:试图访问的变量名不存在
SyntaxError:语法错误,代码形式错误
KeyError:在读取字典中的key和value时如果key不存在,就会触发KeyError错误
IndexError:索引错误,使用的索引不存在,常索引超出序列范围,序列中没有此索引(index)
ZeroDivisionError: division by zero
0不可以做除数
课程学习网站www.pypypy.cn
Python+ Vscode 安装## windows版本https://shimo.im/docs/xiMGi8FDVSkZG8cb/ ## Mac os版本https://shimo.im/docs/OqyxMRZU16InMIW0/
CSDN:https:// www.csdn.net/ Github:https://github.com/微信公众号:量子位
英文变量名:CODELF(https://unbug.github.io/codelf)
get小技巧
Ctrl+c断开循环
全选+tab——全部缩进;全选+shift+tab——全部缩回;
模块http://c.biancheng.net/view/2420.html
安装
《VSCode使用操作指南(推荐)》https://shimo.im/docs/2qgQUZ0ccXUTCD30/
Win系统\"配合文档和视频安装#需严格按照流程进行安装安装视频:https://static.pandateacher.com//staicinstall%20vscode_windows.mp4安装文档:https://shimo.im/docs/uBhomGsSi4EgYgSf/ 《windows安装》\"
案例
应用
乘法口诀表
识数
猜大小
'''一个人在心里想好一个数,比如 24,然后让另一个人猜。如果他猜的数比 24 小,告诉他“太小了”,如果他猜的数比 24 大,告诉他“太大了”,这个游戏只能猜 3 次,3 次都猜不中,就告诉他“失败了”。'''secret = 24for i in range(3): #3 次机会开启 3 次循环guess = input('guess which number is my secret:')if int(guess) ==secret:print('正确!你很棒哦。') #若猜对输出结果breakelif int(guess)>secret:print('你猜的太大了,请重新猜猜~')else:print('你猜的太小了,请重新猜猜~')else:print('给你 3 次机会都猜不到,你失败了。') #3 次机会都失败则执行 else
secret = 24 #设定秘密数字while True: guess = input('你来猜猜我的秘密数字是多少:') if int(guess)==secret: #数字对比 print('正确!你很棒哦。') break elif int(guess)>secret: print('你猜的太大了,请重新猜猜~') else: print('你猜的太小了,请重新猜猜~')
secret = 24for i in range(3): guess = input('guess which number is my secret:') if int(guess) ==secret: print('正确!你很棒哦。') #输出结果 break elif int(guess)>secret: print('你猜的太大了,请重新猜猜~') else: print('你猜的太小了,请重新猜猜~')else:print('给你3次机会都猜不到,你失败了。')
人事奖金
密码3次机会
n=0while n<3: username = input(\"请输入用户名:\") password = input(\"请输入密码:\") if username == 'abc' and password == '123': print(\"登录成功\") break else: n=n+1 print(\"输入有误\")else: print(\"你输错了三次,登录失败\")
game案例
https://github.com/CharlesPikachu/Games/tree/master/Game4
模块案例
a = '我是模块中的变量a'def hi():a = '我是函数里的变量a'print('函数“hi”已经运行!')class Go2:a = '我是类2中的变量a' def do2(self):print('函数“do2”已经运行!')print(a) # 打印变量“a”hi() # 调用函数“hi”A = Go2() # 实例化“Go2”类print(A.a) # 打印实例属性“a”A.do2() # 调用实例方法“do2”
=
# 这是主程序main.py# 请阅读代码注释import test # 导入test模块print(test.a) # 使用“模块.变量”调用模块中的变量test.hi() # 使用“模块.函数()”调用模块中的函数A = test.Go2() # 使用“变量 = 模块.类()”实例化模块中的类print(A.a) # 实例化后,不再需要“模块.”A.do2() # 实例化后,不再需要“模块.”
0 条评论
回复 删除
下一页