荐 看完一个博客你就学会了Python,干货满满(自己总结,适合学过c,或者c++)
大家好,本人目前大学,学习过程中也经常碰壁,为什么学Python,是因为我大一观看比赛心里有一个想做的项目,需要用到Python,所以才学的,目前那个项目我已经做完了,下次有机会的话给大家分享Python一下如何进行可视化编程,真正完成一个独立可以拿的出手的完整项目(终于感觉我编的像一个程序了,真好,顺便求一下关注点赞,谢谢啦)
好了开始学吧,相信你会有所进步的(ps:我Python是在b站上跟着小甲鱼学的,作为初步学习还是很好地,如果想深入学习,建议首先把基础学完,然后确定方向,深入学习)
文章目录
一、输出:print()
print("内容")
二、输入:input()
rep = input('输入内容')
注: 给rep赋值为输入的内容(真好,不需要像c那样提前声明变量)
三、判断:
if 判断语句 :
else:
if guess >secret:
print("大了大了~~")
else:
print("小了小了~~")
四、循环:
for I in 元组,列表等
While 判断语句:
while guess != secret:
guess = int(rep)
if guess == secret:
print('nb')
else:
if guess >secret:
print("大了大了~~")
else:
print("小了小了~~")
for i in range(10):
if(i%2):
print(i)
continue
i+=2
注: 对于Python来讲没有通过像c那样的大括号区分,所以对齐是区分的唯一标准,Python其实是最整齐的语言
五、列表:【】(数组形式操作)
ser = ['h','ss','tp']
print(ser[1]) ##输出第二个元素,ss
print(len(ser)) ##输出长度,ss
以下是列表常用的函数(建议自己打一遍,之后用时就有印象):
长度len(列表)
尾加入一个参数append()
尾加入一个列表extend(【】)
Insert(位置,插入元素)
remove(需要删除的变量)
del【位置】(删除位置)
del 列表整体 (删除本身)
pop(什么也不加)提出最后一个
pop(加位置)删除位置那个元素
列表【位置1:位置2】=位置1到位置2(不包含位置2)(位置1或2可以有一个不写)
列表 = 列表【:】复制地址不同
列表 = 列表【】地址本身相同(相当于两个变量名,一个地址)
列表1>列表2 比较:列表1从左起有一个元素大,就输出true否为false
判断1 and 判断2
列表=列表1+列表2 可拼接类似extend(但不能直接加元素,只能加列表)
列表*数字 翻倍
可直接用 in 或not in 判断某元素是否在列表中(但不能判断列表中的列表)
列表【外侧】【内侧】
Count(元素)输出个数
Index(元素)第一个元素的位置
index(元素,位置1,位置2)1,2位置间元素的位置
reverse()反转整个列表
sort()(默认从小到大排序)
列表.sort(reverse=Ture) 从小到大排序
六、元组 ()
a=(1,2,3,4)
print(len(a))
元组不可修改
元组逗号是关键
元组可利用切片方法删除部分元素:temp = temp[:2]+temp[2:]也可以加(,)
del 元组 删除元组()
注: del只删除标签,当所有指向该地址的标签都被删除后,系统会自动回收其他操作几乎和序列一样
七、集合{}
a={1,2,3,4}
print(len(a))
print(a)
无重复元素
创建集合可以使用{}或set()
创建一个空集合必须用set(),而不能用{},因为{}是用于创建空字典
注:操作几乎和序列一样,但是不能当像c的数组那样直接通过下表进行访问,所以建议一般用列表,元祖多
八、字典
scores = { '数学': 90, '语文': 89,'英语': 99}
print(scores['数学'])##输出数学的成绩:90
clear() 函数用于删除字典内所有元素。
copy() 函数返回一个字典的浅复制。
fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
get() 函数返回指定键的值,如果值不在字典中返回默认值。
in 操作符用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false。
items() 方法以列表返回可遍历的(键, 值) 元组数组。
keys() 方法以列表返回一个字典所有的键。
setdefault() 方法和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。
update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。
values() 方法以列表返回字典中的所有值。
pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。
注:由于字典中的 key (就像代码中的‘数学’)是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。
九、字符串的方法及注释(看看就好没必要记住,用的时候查就好)
capitalize() 把字符串的第一个字符改为大写
casefold() 把整个字符串的所有字符改为小写
center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串
count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。
encode(encoding=‘utf-8’, errors=‘strict’) 以 encoding 指定的编码格式对字符串进行编码。
endswith(sub[, start[, end]]) 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
expandtabs([tabsize=8]) 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。
find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
index(sub[, start[, end]]) 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
isdecimal() 如果字符串只包含十进制数字则返回 True,否则返回 False。
isdigit() 如果字符串只包含数字则返回 True,否则返回 False。
islower() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。
isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。
isspace() 如果字符串中只包含空格,则返回 True,否则返回 False。
istitle() 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。
isupper() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。
join(sub) 以字符串作为分隔符,插入到 sub 中所有的字符之间。
ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
lower() 转换字符串中所有大写字符为小写。
lstrip() 去掉字符串左边的所有空格
partition(sub) 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 (‘原字符串’, ‘’, ‘’)
replace(old, new[, count]) 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
rfind(sub[, start[, end]]) 类似于 find() 方法,不过是从右边开始查找。
rindex(sub[, start[, end]]) 类似于 index() 方法,不过是从右边开始。
rjust(width) 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。
rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找。
rstrip() 删除字符串末尾的空格。
split(sep=None, maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
splitlines(([keepends])) 在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。。
startswith(prefix[, start[, end]]) 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。
strip([chars]) 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。
swapcase() 翻转字符串中的大小写。
title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
translate(table) 根据 table 的规则(可以由 str.maketrans(‘a’, ‘b’) 定制)转换字符串中的字符。
upper() 转换字符串中的所有小写字符为大写。
zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充
九、格式化
%d、%i 转换为带符号的十进制整数
%o 转换为带符号的八进制整数
%x、%X 转换为带符号的十六进制整数
%e 转化为科学计数法表示的浮点数(e 小写)
%E 转化为科学计数法表示的浮点数(E 大写)
%f、%F 转化为十进制浮点数
%g 智能选择使用 %f 或 %e 格式
%G 智能选择使用 %F 或 %E 格式
%c 格式化字符及其 ASCII 码
%r 使用 repr() 函数将表达式转换为字符串
%s 使用 str() 函数将表达式转换为字符串
age = 5
print("你孩子已经%d岁了!" % age)##%d就是变量age
注:类比一下c语言的输出就懂
十、序列
在 Python 中,序列类型包括字符串、列表、元组、集合和字典,这些序列支持以下几种通用的操作,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。
max(序列)反回ASCII最大的
min()
sum()
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
seq = ['one', 'two', 'three']
for i, item in enumerate(seq):
print(i, item)
十一、函数
def 函数名():
lambda 参数:
def hello():
print('hello')
hello()
def func(a):
b = a+1
return b
result = func(4)
print(result)
func = lambda a:a+1 #lambda表达式,简单函数的简单表示
注:其实一般用def就行了,学过c的可以类比,差不多
十二、os模块中关于文件/目录常用的函数使用方法(文件的读写,具体用时可以仔细学习)
def wenjian(name)
f = open(name)#打开name文件
one = []
two = []
three = []
four = []
cout = 1
for each_f in f:
if each_f[:6] != '------':
(role,line_spoken) = each_f.split(';',1)
if role == '第一':
one.append(line_spoken)
if role == '第二':
two.append(line_spoken)
if role == '第三':
three.append(line_spoken)
if role == '第四':
four.append(line_spoken)
else:
file_name_one = '第' +str(cout)+'1'+'.txt'
file_name_two = '第' +str(cout)+'2'+'.txt'
file_name_three = '第' +str(cout)+'3'+'.txt'
file_name_four = '第' +str(cout)+'4'+'.txt'
one_file = open(file_name_one,'w') #创建文件
two_file = open(file_name_two,'w')
three_file = open(file_name_three,'w')
four_file = open(file_name_four,'w')
one_file.writelines(one)#写入
two_file.writelines(two)
three_file.writelines(three)
four_file.writelines(four)
one = []
two = []
three = []
four = []
cout += 1
one_file.close()
two_file.close()
three_file.close()
four_file.close()
f.close()
wenjian(D:\\python程序\\文件\\联系.txt)
函数名 使用方法
getcwd() 返回当前工作目录
chdir(path) 改变工作目录
listdir(path=’.’) 列举指定目录中的文件名(’.‘表示当前目录,’…‘表示上一级目录)
mkdir(path) 创建单层目录,如该目录已存在抛出异常
makedirs(path) 递归创建多层目录,如该目录已存在抛出异常,注意:‘E:\a\b’和’E:\a\c’并不会冲突
remove(path) 删除文件
rmdir(path) 删除单层目录,如该目录非空则抛出异常
removedirs(path) 递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
rename(old, new) 将文件old重命名为new
system(command) 运行系统的shell命令
walk(top) 遍历top路径以下所有的子目录,返回一个三元组:(路径, [包含目录], [包含文件])【具体实现方案请看:第30讲课后作业_】
以下是支持路径操作中常用到的一些定义,支持所有平台
os.curdir 指代当前目录(’.’)
os.pardir 指代上一级目录(’…’)
os.sep 输出操作系统特定的路径分隔符(Win下为’\’,Linux下为’/’)
os.linesep 当前平台使用的行终止符(Win下为’\r\n’,Linux下为’\n’)
os.name 指代当前使用的操作系统(包括:‘posix’, ‘nt’, ‘mac’, ‘os2’, ‘ce’, ‘java’)
os.path模块中关于路径常用的函数使用方法
函数名 使用方法
basename(path) 去掉目录路径,单独返回文件名
dirname(path) 去掉文件名,单独返回目录路径
join(path1[, path2[, …]]) 将path1, path2各部分组合成一个路径名
split(path) 分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
splitext(path) 分离文件名与扩展名,返回(f_name, f_extension)元组
getsize(file) 返回指定文件的尺寸,单位是字节
getatime(file) 返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
getctime(file) 返回指定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
getmtime(file) 返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
以下为函数返回 True 或 False
exists(path) 判断指定路径(目录或文件)是否存在
isabs(path) 判断指定路径是否为绝对路径
isdir(path) 判断指定路径是否存在且是一个目录
isfile(path) 判断指定路径是否存在且是一个文件
islink(path) 判断指定路径是否存在且是一个符号链接
ismount(path) 判断指定路径是否存在且是一个挂载点
samefile(path1, paht2) 判断path1和path2两个路径是否指向同一个文件
第十三、异常总结(不用看也行,建议出现异常直接百度,度娘肯定能解决)
Python标准异常总结
AssertionError 断言语句(assert)失败
AttributeError 尝试访问未知的对象属性
EOFError 用户输入文件末尾标志EOF(Ctrl+d)
FloatingPointError 浮点计算错误
GeneratorExit generator.close()方法被调用的时候
ImportError 导入模块失败的时候
IndexError 索引超出序列的范围
KeyError 字典中查找一个不存在的关键字
KeyboardInterrupt 用户输入中断键(Ctrl+c)
MemoryError 内存溢出(可通过删除对象释放内存)
NameError 尝试访问一个不存在的变量
NotImplementedError 尚未实现的方法
OSError 操作系统产生的异常(例如打开一个不存在的文件)
OverflowError 数值运算超出最大限制
ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError 一般的运行时错误
StopIteration 迭代器没有更多的值
SyntaxError Python的语法错误
IndentationError 缩进错误
TabError Tab和空格混合使用
SystemError Python编译器系统错误
SystemExit Python编译器进程被关闭
TypeError 不同类型间的无效操作
UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
UnicodeError Unicode相关的错误(ValueError的子类)
UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)
ValueError 传入无效的参数
ZeroDivisionError 除数为零
以下是 Python 内置异常类的层次结构:
BaseException
±- SystemExit
±- KeyboardInterrupt
±- GeneratorExit
±- Exception
±- StopIteration
±- ArithmeticError
| ±- FloatingPointError
| ±- OverflowError
| ±- ZeroDivisionError
±- AssertionError
±- AttributeError
±- BufferError
±- EOFError
±- ImportError
±- LookupError
| ±- IndexError
| ±- KeyError
±- MemoryError
±- NameError
| ±- UnboundLocalError
±- OSError
| ±- BlockingIOError
| ±- ChildProcessError
| ±- ConnectionError
| | ±- BrokenPipeError
| | ±- ConnectionAbortedError
| | ±- ConnectionRefusedError
| | ±- ConnectionResetError
| ±- FileExistsError
| ±- FileNotFoundError
| ±- InterruptedError
| ±- IsADirectoryError
| ±- NotADirectoryError
| ±- PermissionError
| ±- ProcessLookupError
| ±- TimeoutError
±- ReferenceError
±- RuntimeError
| ±- NotImplementedError
±- SyntaxError
| ±- IndentationError
| ±- TabError
±- SystemError
±- TypeError
±- ValueError
| ±- UnicodeError
| ±- UnicodeDecodeError
| ±- UnicodeEncodeError
| ±- UnicodeTranslateError
±- Warning
±- DeprecationWarning
±- PendingDeprecationWarning
±- RuntimeWarning
±- SyntaxWarning
±- UserWarning
±- FutureWarning
±- ImportWarning
±- UnicodeWarning
±- BytesWarning
±- ResourceWarning
第十四 else语句用法(为什么把这个拿出来,因为我觉得这个还是很有用的)
num = int(input('请输入一个数:'))
while num > 0:
x = num % 10
print(x)
num = num //10
if(x == 0):
print("里面有零")
break
else:
print("里面没零")
当else语句可以while和 for一起用,
While 条件 :
内容1
Else:
内容2
当while中内容1全部运行,才执行else中内容2,如果用break中途退出,不执行else
(python中//代表返回整数)
Try:
内容1
Except 错误 变量:
内容2
Else:
内容3
(当内容1没错是执行内容3,否则执行内容2)
以上就是这次的全部内容了,会了这些基础就可以看懂大部分代码,然后选一个自己想学习的方向努力。今天正好是高考,那么祝各位考生考上心仪的的大学,早日脱单。点个关注,或赞再走呀
本文地址:https://blog.csdn.net/qq_44162236/article/details/107180261