网站建设鑫科技,做网站什么行业前景好,国网电子商务平台,软件开发公司是干什么的文章目录#x1f4da;基础语法#x1f407;输入和输出#x1f955;print()输出#x1f955;input()输入#x1f407; 变量的命名#x1f407;条件判断#x1f955;单向判断#x1f955;双向判断#x1f955;多向判断#x1f955;if嵌套#x1f955;三元表达式#…
文章目录基础语法输入和输出print()输出input()输入 变量的命名条件判断单向判断双向判断多向判断if嵌套三元表达式和或非数据类型数据类型类型转换四则运算数据的常用语法列表语法列表特点列表的操作字符串语法字典语法布尔值相关循环for循环while循环while循环和for循环比较循环进阶函数函数定义的语法参数的类型变量作用域类与对象类的创建类的继承模块模块类型内置模块模块和模块对象导入方法程序入口说在前面 python基础语法对照着C学大体思想和方法都大差不差但要关注python和C在表达上的不同点即那些语法规则细节上的差异点 基础语法
输入和输出
print()输出
第一种 不带引号让计算机读懂括号里的内容打印最终的结果 print(11) 输出2 第二种带单引号计算机无须理解原样复述引号中的内容双引号和单引号作用一样一般使用英文单引号 print(秋水共长天一色) 输出秋水共长天一色 第三种带三引号实现换行用来包裹多行文本按照原样打印出来转义字符当要打印的东西本身具有单引号——不需要被解析的引号面前加上反斜杠 \ 表示一个单引号 \ 表示一个双引号 \a 响铃(BEL) \b 退格(BS)将当前位置移到前一列 \f 换页(FF)将当前位置移到下页开头 \n 换行(LF)将当前位置移到下一行开头 \r 回车(CR)将当前位置移到本行开头 \t 水平制表(HT) (跳到下一个TAB位置) \v 垂直制表(VT) \\ 代表一个反斜杠字符 \ 代表一个单引号(撇号)字符 \ 代表一个双引号字符 \? 代表一个问号 \0 空字符(NUL) \ddd 1到3位八进制所代表的任意字符 \xhh 1到2位十六进制所代表的任意字符
input()输入 变量的命名
只能是一个词只能包含字母、数字和下划线不能以数字开头尽量描述包含的数据内容不要使用python函数名和关键字。 条件判断
单向判断
如果条件成立就执行语句 number 6if number 3:pirnt(number)注意格式
if后面要加冒号判断条件不用括号。同时执行语句要缩进
双向判断
if…else… 条件成立执行if语句 否则执行else语句
多向判断
多选一让计算机最先判断最难满足的条件if…elif…else 三个及其以上条件的判断
grade 65
if 80 grade 100:print(成绩优秀)
elif 60 grade 80:print(成绩中等)
else :print(成绩差)if…else…和if…if…的区别 if…else…一个条件满足后就不会进行其他判断if代表的条件和else代表的条件是互斥的if…if…会遍历所有条件一个条件无论满足还是不满足都会进行下一个条件的判断 if嵌套
使用if进行条件判断 还希望在条件成立的执行语句中再增加条件判断 即if中还有if 这两个if非平级缩进超级重要
三元表达式
X Y if 条件 else Z条件为真为Y为假为Z 和或非
和and或or非~ 数据类型
数据类型
字符串str用引号括起来的文本如‘python’、‘123’整数int不带小数点的数字如-1、1、0、520、1314浮点数float带小数点的数字运算结果存在误差如-0.15、3.1415、1.0)列表list是一种有序的集合可以随时增加或删除其中的元素。标识是中括号[]。元组tuple一种类似列表的数据类型但是不能被修改。字典dict全称为dictionary使用键值对key-value作为存储方式。标识是大括号{}。 字典中的键需要是唯一的如果字典中有两个相同的 键Python 只会保留后面那个。而值则没有限制可以是任意类型的也可以有相同的值。 布尔值bool表示真假的数据类型只有两个值True和False。type()函数判类型len()用于检查某个数据长度可变类型与不可变类型 类型转换
str、float、int、list( )
不能将字符串和整数相联加——常用到数据类型转换input本身都是字符串——常用到数据类型转换scoreint(input(输入分数))任何类型都可以转换为字符串不是所有都能转换成整数/浮点数示例举例 文本类字符串和浮点形式的字符串不能转化为整数文字类型字符串无法转换为浮点数 浮点数转化为整型是对浮点数直接抹零取整。list() :将数据转换为列表类型a python基础
print(list(a))[‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘基’, ‘础’] 四则运算 运算优先级从左到右顺着来括号里的优先算乘除排在加减前。 数据的常用语法
列表语法
列表特点
项目之间有先后顺序列表内容可以编辑可记录的项目各式各样示例students[A, B, C, D] 一般推荐逗号与下一个元素之间加一个空格在实际写代码的过程中统一段代码不要出现函数名和列表名相同的情况不然会报错。
列表的操作
对列表元素的处理 ⚠️由索引取元素 正向索引print(students[2]) 列表中正向索引是从0开始数的反向索引print(students[-1]) 反向索引倒数几个从-1开始数 ⚠️查列表元素索引列表.index(元素内容)关注从0开始索引 ⚠️列表元素的修改列表[索引] 新值 ⚠️列表元素的添加 ⭐️直接添加默认在列表末尾添加:列表.append(元素) 用append时不能对列表赋值以下输出None第二行语法错误list [松,竹]
list list.append(梅)
print(list)append不能一次添加多个元素以下TypeError: append() takes exactly one argument (2given)ist [松,竹]
list.append(梅,岁寒三友)
print(list)⭐️在列表中间某个位置插入一个元素列表.insert(9,元素)即在第10位插入B此时排在插入值后的索引值自动1 ⚠️列表元素的删除 ⭐️列表.pop(索引)如果不填索引就默认为最后一个pop删除会显示删除的具体值。 以students[A, B, C, D]为例例punishedstudents.pop(1) 输出 punishedB ⭐️del列表[索引]:这里的删除不会显示被删的具体值 每次只能删除一个元素连续删除多个元素是记得重新计算偏移值 list [松,竹,梅]
del list[0]
print(list)
del list[0]
print(list)[‘竹’, ‘梅’] [‘梅’]⭐️列表.remove(值)在列表中找到的第一个指定的值然后将它删除 ⚠️列表的分片列表层面的提取一次提取若干个元素提出来的是列表 列表[起始索引结束索引]例若要获取第三到第五个元素应为列表[2,5]若是从头开始则可写为列表[:3],同理最后可为列表[10:],也可用反向索引列表[-4:]列表分片必须用整数而不可以用浮点数因此和/运算符相关的要把结果转化为整数
对列表的处理 ⚠️列表的修改同样是使用赋值语句注意是对列表的赋值 list [松,竹,梅]
list[:] [岁寒三友]
print(list)[‘岁寒三友’] list [松,竹,梅]
list[:] 岁寒三友
print(list)[‘岁’, ‘寒’, ‘三’, ‘友’] ⚠️统计列表中某元素出现的次数列表.count(元素) ⚠️排序列表.sort()字符串列表默认按首字母排列数值列表默认是从小到大排列 ⚠️反转列表.reverse ⚠️复制列表.copy()若直接AB不是复制只不过是给列表改了个名字 ⚠️清空列表.clear() ⚠️列表的删除del 列表[分片] ⚠️列表的增加 列表的增加叫作列表的合并会更合理 使用符号’’ 符号’只能用在列表之间不能用在列表和元素之间顺序在加号前的元素排在新列表的前面 ⚠️列表的乘法列表*n:实质即为加了几次
列表的拓展操作
⚠️zip(列表1,列表2):将两个长度相同的列表合并起来对应位置完成合并组队变成元组⚠️enumerate(列表,1)枚举功能默认从1开始 上述两个操作所形成的的均为元组 元组用圆括号包裹元组里的元素不可以增改删但可以查询和分片和加法乘法。只有一个元素的元组在格式上与列表不同写为x , 元组和列表的互换 元组→列表list(元组)列表→元组tuple(列表) 所以上述两个拓展操作两者返回对象再用list()转换为二维列表 二维列表通用格式列表名[行数-1][列数-1]
字符串语法 字符串的索引和分片规则均与列表同分片范围超出总长度不会报错但索引取值print(string[100000])这种形式超出范围会报错。可以把字符串想象成一根绳子分片就是用刀将绳子切分开来。在字符串长度内分片相当于在绳子上切割而超出范围相当于一刀砍到了空气对于绳子来说没有影响。字符串的不可变性 字符串一旦创建后是不可以改变的这个属性和元组类似通过索引来改变字符串中的元素就会报错想要修改字符串内容可使用字符串分片和拼接去生成一个新的字符串 大小写互换 分割、组合与移除 定位与替换 字符串格式化输出 常见的占位符%d整数%f浮点数%s字符串%s是万能的它会把任何数据类型转换为字符串%x十六进制整数 format() 方法使用 {} 作为占位符然后按照参数顺序替换对应的占位符。 我们还可以给占位符命名命名后参数顺序不再重要
字典语法
字典数据的提取 列表使用偏移量来提取字典使用键来提取
group {师父:唐三藏, 大师兄:孙行者, 二师兄:猪八戒, 沙师弟:沙和尚}
print(group[师父])唐三藏
字典数据的修改
group {师父:唐三藏, 大师兄:孙行者, 二师兄:猪八戒, 沙师弟:沙和尚}
group[师父]唐玄奘
print(group){‘师父’: ‘唐玄奘’, ‘大师兄’: ‘孙行者’, ‘二师兄’: ‘猪八戒’, ‘沙师弟’: ‘沙和尚’}
字典数据的添加
group {师父:唐三藏, 大师兄:孙行者, 二师兄:猪八戒, 沙师弟:沙和尚}
group[白龙马]敖烈
print(group){‘师父’: ‘唐三藏’, ‘大师兄’: ‘孙行者’, ‘二师兄’: ‘猪八戒’, ‘沙师弟’: ‘沙和尚’, ‘白龙马’: ‘敖烈’}
字典数据的删除
group {师父:唐三藏, 大师兄:孙行者, 二师兄:猪八戒, 沙师弟:沙和尚}
del group[师父]
print(group){‘大师兄’: ‘孙行者’, ‘二师兄’: ‘猪八戒’, ‘沙师弟’: ‘沙和尚’}
提取字典中所有的键dict.keys() 提出来的键是元组形式应该用list转化为列表
group {师父:唐三藏, 大师兄:孙行者, 二师兄:猪八戒, 沙师弟:沙和尚}
print(group.keys())
#dict_keys([师父, 大师兄, 二师兄, 沙师弟])
#打印出了所有字典的键但是都是元组的形式group {师父:唐三藏, 大师兄:孙行者, 二师兄:猪八戒, 沙师弟:沙和尚}
print(list(group.keys()))
#[师父, 大师兄, 二师兄, 沙师弟]提取字典中所有的键值对dict.items()
group {师父:唐三藏, 大师兄:孙行者, 二师兄:猪八戒, 沙师弟:沙和尚}
print(group.items())dict_items([(‘师父’, ‘唐三藏’), (‘大师兄’, ‘孙行者’),(‘二师兄’, ‘猪八戒’), (‘沙师弟’, ‘沙和尚’)])
通过键获取字典对应的值dict.get(键,*) 当键不存在时不会报错而是默认返回none也可以通过第二个参数设置不存在时的默认返回值。
布尔值相关
bool() 检查数值的真假
假真0任意整数/浮点数‘’空字符串‘嘿嘿’字符串[]空列表[1,2,3]{}字典{1:‘a’,2:‘b’}None
if自动进行布尔类型转换比较运算符产生布尔值成员运算符产生布尔值 in 属于 如果值在指定序列里条件为真not in 不属于 如果值不在指定序列里条件为真例print(HeinHello)True 逻辑运算符产生布尔值 and 且 连接两个布尔值如果两个都为真该条件才为真or 或 连接两个布尔值如果有一个为真该条件即为真not 非 反逻辑状态a为Truenot a则为False反之亦然
循环 和C思想都一样就是语法上有一点差别 for循环 for…in range()处理指定次数的循环 列表生成式:y [表达式 for x in range(A,B) if 条件] y []
for x in range(1,11):if x%2 1:y.append(x*x)
print(y)就等价于y [ x*x for x in range(1,11) if x%2 1] zip函数for循环 # 客人编号
ids [1, 2, 3]
# 客人名字
names [派大星, 章鱼哥, 珊迪]
# 遍历按编号、名字顺序组合起来的数据
for id, name in zip(ids, names):print(str(id) 号 name)输出
1号派大星
2号章鱼哥
3号珊迪enumerate函数for循环 # 等待就餐的客人列表
names [派大星, 章鱼哥, 珊迪]
# 遍历按序号、名字组合起来的数据
for id, name in enumerate(names, 1):print(str(id) 号 name)输出
1号派大星
2号章鱼哥
3号珊迪while循环 当条件为真时执行循环语句只要条件为真便会一直循环在编程中一个靠自身控制无法终止的程序称为 死循环。为了避免写出死循环我们要保证循环条件最终可以变为 False。进入死循环按CtrlC及时终止
while循环和for循环比较
for擅长处理固定次自动遍历各序列while处理不定次数的循环条件为False便停止
循环进阶 break如果满足条件则结束循环 # 店里现在还剩 3 份食材
left 3for i in range(1, 6):print(为第 str(i) 位客人做一份蟹黄堡)left - 1if left 0:breakprint(食材没有了明天再来吧)
输出
为第1位客人做一份蟹黄堡
为第2位客人做一份蟹黄堡
为第3位客人做一份蟹黄堡
食材没有了明天再来吧continue如果满足条件则跳过当前循环的剩余语句直接开始下一轮循环 # 建立一个列表储存客人的名字
names [泡芙老师, 珊迪, 痞老板, 章鱼哥]for name in names:if name 痞老板:print(海绵宝宝拒绝给痞老板做蟹黄堡)continueprint(给 name 做一份蟹黄堡)输出
为泡芙老师做一份蟹黄堡
为珊迪做一份蟹黄堡
海绵宝宝拒绝给痞老板做蟹黄堡
为章鱼哥做一份蟹黄堡循环嵌套即循环中有循环
函数 函数是组织好的、可以重复使用的、用来实现单一功能的代码函数类型可分为自定义函数和内置函数自定义函数是需要自己定义而内置函数是python内部已经定义好的函数比如print()、input()等 函数定义的语法 def circle(r):c 2 * 3.14 * r# 先打印计算结果print(该圆的周长是 str(c))# 函数体最后一行加上 return 语句return cresult circle(2)
print(result)参数的类型 位置参数调用的时候直接以一个量对应函数形参的相应位置因此位置不能随意更换 关键字参数调用的时候在那个量之前加上称号相当于给那个量标了名字。即按参数名 值的格式传入参数 默认参数为了减少重复输入 不同参数之间的规则 - Python 在解析参数时是优先考虑 位置参数 的所以位置参数一定要放在关键字参数之前。 - 默认参数一定要放在最后面
变量作用域 局部变量只能函数内或者一定代码块内生效 全局变量在全局内生效的变量 global 将局部变量转化为局部变量python内置函数 如果局部变量和全局变量的名称相同那函数内部会有限访问局部变量外部会访问全局变量。 school 双叶幼儿园def welcome():school 春日部幼儿园print(欢迎来到 school)welcome()
# 访问的 school 是函数内的局部变量
# 输出欢迎来到春日部幼儿园print(欢迎来到 school)
# 访问的 school 是全局变量
# 输出欢迎来到双叶幼儿园但加了global的局部变量会自动取代它之前定义的全局变量并一直沿用下去。
类与对象 类具有相同属性和方法的对象的抽象 实例类的个例对象Python中的对象是类和实例的集合类可以看作是对象实例也可以看作是对象 类的创建 定义类之后首先要把类实例化再通过 实例名.属性名 和 实例名.方法名() 来调用类的属性和方法。定义类的方法时self 用来代表类创建的实例千万别忘了它如果要在方法内部调用类的其他方法和属性也要成 self.属性名 或 self.方法名() 才不会报错。定义类的方法时第一个参数 self 不能丢调用方法时要忽略Python 是 强制性 地将 实例对象本身 传递给类方法的 第一个参数
类的继承 class 子类名(父类名)继承不只是子类继承父类的属性和方法当父类还有自己的父类时子类也能继承父类的父类的属性和方法
新增 :指在继承父类的属性和方法的基础上添加自己独有的属性或方法。比如师傅传授给你一套武功你自己又练了别的功法这样你就既继承了师傅的功法也独创了自己的功法。重写 指在继承父类的属性和方法的基础上重写父类的属性和方法。比如师傅传授给你一套武功你对其进行了改进同样的功法就变成你的独创功法。
模块
模块类型 内置模块 time模块 datetime 模块 datetime日期获取 timedelta()用于日期计算 random模块 math模块
模块和模块对象导入方法 程序入口
如果 abc.py 以导入的方式被运行那 abc.py 中的 __name__ 值就是 abc如果 abc.py 被直接运行那 abc.py 中 __name__ 的值会被改为 __main__。
# other.py
print(我是 other 模块)if __name__ __main__:print(other 模块被直接运行了)# main.py
import otherprint(我是 main 模块)if __name__ __main__:print(main 模块被直接运行了)输出
我是 other 模块
我是 main 模块
main 模块被直接运行了