"也许对我来说,太多拘束可能"
本篇的主要内容,针对的是一些常见的语法,在python中是怎样表示的,例如,python变量如何定义、选择、循环、判断结构是如何表示的?python函
数定义是怎么定义的……
----前言
一、认识python解释器
我们 直接进入命令行敲 python的时候,就会进入python解释器。 下面我们看到的就是 一个属于python 的shell
这个解释器 可以认为是一个基本的计算器,当然 也可以执行合法的python语句。
但是更多的时候,我们是将代码写在一个 .py后缀的文件里,通过python解释器 来执行这个.py文件里的代码。
二、初始Python
(1)赋值和初始化
①动静态类型:
1.在python中 已经不用像 C++ 或者 Java那样 声明类型
2.python中可以将初始化 和 赋值等价
3.同样 python中的任意一个变量 都属于动态类型,而非静态类型!
//内建函数 type 可以查看变量的类型.
print(type(变量名))
不过 python在变量命名方面 比较敏感;
1.变量名必须是字母, 数字, 下划线. 但是不能用数字开头(规则和C语言一样).2.变量名大小写敏感, case 和 Case 是两个不同的变量.3.变量命名要做到 "见名知意" .
②变量表示范围
1.Python中的数字变量的取值范围, 并没有限制(完全取决于你机器的内存多大), 而不是像C语言中int用4个 字节表示.2.Python中还有一种 "复数" 类型. 和数学中的 "复数" 是相同的概念
(2)字符串
①三个引号
Python中可以使用 单引号('), 双引号("), 三引号('''/""") 来表示字符串
并且,python中没有 字符概念!
#内嵌命令 计算字符串的长度
print(len(变量名))
这样做的目的 是为了避免蹩脚的 转义
②切片与索引
1.使用索引操作符 [] 或者切片操作符 [:] 来获取子字符串(切片操作是一个前闭后开区间).2.字符串的索引规则是: 第一个字符索引是0, 最后一个字符索引是-1(可以理解成len-1).
③字符串运算符
用于字符串连接运算, * 用于字符串重复
④格式化替换
格式化字符串, 可以使用 % 这样的方式进行格式化的替换.
a = 100
ptr = "a = %d"
result = ptr % a
print(result)
#######################
a = 100
print("a = %d" % a)
(3)布尔类型
Python中用True和False来表示布尔值(注意, 第一个字符大写).
布尔类型是一种特殊的整数类型。 运算时只表示1 或 0
(4)输入输出 与 注释
1.print函数将结果输出到标准输出(显示器)上.
2.input函数从标准输入中获取用户输入.
input接收的变量类型 都为字符串类型 如果需要得到int 类型 需要强转
在python中 '#'是注释。 不解释
(5)操作符
Python中支持 + - * / % 这样的操作符. 并且它们的行为都和C语言一样./ 是 "精确除法// 就类似于 "取整"
当然python的 负数除法 与 C++/C 还有其他差异,但不是本篇的重点。
该文章可以为你 提供一个途径了解。
学途的踉跄~TOP2 取模取余,傻傻分不清~https://blog.csdn.net/RNGWGzZs/article/details/124067177
三、python语句结构
python同样也有自己的 选择、分支、循环语句。 但是使用上和 C++ \ java这些早些语言 有些细微的差异。
(1)if语句
①代码块缩进
Python中使用缩进来表示代码块. 相当于天然从语法的角度规定了代码风格.Python是独一无二的使用缩进而不是{}的, 这就避免了一场党派之争~
python干脆"快刀斩乱麻",摈弃了大括号!
标准的if条件语句语法为如下:如果表达式的值非0或者为布尔值True, 则执行 do_something, 否则执行下一跳语句.
python省略去了{} 用来包裹代码的符号。 条件的末尾+ ”:”
并且 另起一行 一定是以"Tab"的格式
if expression:
do_something1
do_something2
next_something
if expression:
do_something1
else:
do_something2
python 中else if 被改为elif的连写
if expression1:
do_something1
elif expression2: (python中的else if 是连起来写的)
do_something2
else:
do_something3
Python坚持一切从简,因此并不支持switch/case这样的语句(毕竟有if/else). 也没有必要支持. 实际上 switch/case 语法并不优雅。
(2)while循环语句
while循环语句和if语句语法类似.只要表达式的值非0或者为True, 就会循环执行do_something
while expression:
do_something
(3)for循环
Python中的for循环和传统的for循环不太一样.
for循环接收可迭代对象(序列或者迭代器)作为参数, 每次迭代其中的一个元素for elem in 迭代对象:
do_somethings.next_somethings
关于迭代对象 在这里也不多赘述。 我们在之后会遇到很多 可以进行迭代的对象!
(4) pass/break/continue
break/continue都很熟。 要么离开循环 要么跳过continue以后的代码 直接进行条件判定。
①pass
pass 是一个全新的概念。
在python中,有时候需要用到"空语句"这样的概念, 什么都不做. 由于没有 {} , 需要有一个专门的语句来占位, 要不缩进就混乱了。
四、初窥门径
上面仅仅 简洁地介绍了 Python的入门。 下面来上上开胃菜~
(1)序列
包含若干个元素, 元素有序排列, 可以通过下标访问到一个或者多个元素. 这样的对象, Python中统一称为序列(Sequence).
Python中的以下对象都属于序列:
字符串/列表/元组
①序列操作符
下列标准类型操作符, 大多数情况下都是适用于序列对象的.
(少部分特例是, 序列中保存的元素不支持标准类型操作符)
1.in/not in: 判定一个元素是否存在于序列中, 返回布尔值
2.连接操作符(+): 把两个相同类型的序列进行连接.
3.重复操作符(*): 让一个序列重复N次
②切片操作
切片操作符([], [:], [::]): 通过下标访问其中的某一个元素, 或者某个子序列.同上面所述的字符串切片相同。
Python如何对待 越界 索引呢?
正数的索引以序列的起始位置作为起点, 负数的索引以序列的结束位置做为起点.
试图访问一个越界的索引, 会引发异常
其他的在字符串 那小段 讲了切片内的内容。
注意:切片不必担心 下标越界。 因为它只会取 区间内能取到的元素。
③序列里的内建函数
len:返回序列长度
max:返回序列中的最大值
min: 返回序列中的最小值
sum: 序列中的元素求和(要求序列中的元素都是数字)
enumerate: 同时枚举出序列的下标和值
zip:可以理解为行列互换sorted: 排序.
sorted(iterable,key=None,reverse=False),返回新的列表,对所有可迭代的对象均有效
sort排序;
from funtools import com_key_to
enumerate:
取出序列容器中的 下标 与 对应的值
(2)列表/元组/字典
①存储与访问
列表和元组类似于C语言中的数组,字典 是一种哈希结构
使用 [] 来表示列表, 使用 () 来表示元组 , 使用{}来表示字典.1.列表和元组能保存任意数量, 任意类型的Python对象
2.可以使用下标来访问里面的元素, 下标从0开始. 最后一个下标为-1(类似字符串下标访问)3.列表和元组唯一的区别是, 列表中的元素可以修改, 但是元组中的元素不能修改.
4.可以使用[:]切片操作得到列表或元组的子集. 这个动作和字符串操作是一样的
元组不支持修改 但是列表能:
字典的访问 本质就是Key 与 value的对应:
进行切片(字典无切片):
②常用操作之列表;
注:连接操作符“+” , 往往并不高效(新创建对象, 把原有对象拷贝进去).
对于列表, 推荐使用extend来完成这样的操作; 对于字符串, 推荐使用join这样的方法
关于sort;
③常见操作之元组
切片操作: 和列表相同
比较运算符, 规则和列表相同.
连接操作(+), 重复操作(*), 判定元素存在(in/not in)都和列表相同.
由于元组不可变, 所以并不支持append, extend, sort等修改"自身"的操作
当我们使用C++ 或者Java时 似乎return 只能返回一个值。 但是到了python里就不一样了,它可以在一个函数(之后会讲)里返回多个值;
④常见操作之字典
pop:删除指定 对象
len: 字典中键值对的数目
hash: 判定一个对象是否可hash. 如果可hash, 则返回hash之后的hashcode. 否则会运行出错in/not in:判定一个key 是否在字典中!
keys:包含字典的所有的key
values:返回一个列表, 包含字典的所有value
items: 返回一个列表, 每一个元素都是一个元组, 包含了key和value
字典的循环遍历;
借助items的循环遍历;
(3)函数
函数想必 有基础的肯定不会陌生
一些可以被重复使用的代码, 可以提取出来放到函数中.
Python使用def来定义一个函数. 使用return来返回结果
def Add(x, y): #def定义
return x + y
print(Add(1, 2)) #调用
1.Python中没有 "重载" 这样的概念. 相同名字的函数, 后面的会覆盖前面的
2.Python支持默认参数. 函数的参数可以具备默认值
3.Python支持多参数返回。 可以用_用来占位 不想接收的返回值
4.Python函数也是一个对象.
1.
2.
3.在上面也说过python中的函数返回值可以有 多个。
4.函数对象;
gp 就类似C/C++中的 函数指针(lambda表达式、仿函数).
总结:
①python类型是动态类型,没有范围的限制。
②字符串\列表\元组皆 序列。 能进行切片[]。 [::] (范围+ 步长)
③while\for\if 的新语法。 pass可以标识一个 空语句。
④for的循环依靠 迭代对象 如:range() 字符串、列表、元组、字典......
⑤列表元组都有+、*、in/not in 但针对自身操作的extend 、append 、 sort 是没有的。
⑥字典keys 、 values 、items 分别可取得字典中的key、对应的value值。 items可以充当迭代对象。
⑦函数定义 def 函数名(): python的函数可以返回多个值。
本篇到此结束 ,感谢你的阅读~
祝你好运