前言
此系列代码完全基于python3和pycharm2021.2。
一、python的标识符
- 标识符由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
- 标识符不能和 Python 中的保留字相同。
- Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
- 在 Python 中,标识符中的字母是严格区分大小写的
- 虽然标识符可以有下划线,但以下划线开头的标识符往往含有特殊含义,因此不建议使用下划线开头的标识符,除非你确实要这么做。
例:下列标识符合法:
abcd
abc_d
Abc_3d
IF
下列标识符不合法:
3abc
if
@abc
python的保留字可以通过print(keyword.kwlist)来打印。
二、python变量类型
- python是弱类型的语言,但不代表它没有类型,只不过它会动态绑定类型而无需我们关注。变量的类型可以通过 type()函数来打印
- Python 中标准的数据类型:
Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) - 得益于python异常丰富的标准库,python的数据类型有许多的函数用法,有兴趣的同学可以去查阅资料。
1.Number
- Python的数字类型支持 int(整型)、float(浮点)、bool(布尔)、complex(复数)。
- python中bool的两种类型True和False其实分别是1和0,所以布尔值实际上可以与其他数值相加。
例如:
a=10.01
print(True+a)
2.String
- 字符串的赋值:
str='xxxx'
str1="xxxx"
如果特殊字符,需要使用反斜杠来进行转义,
例:str="xxx\nccc"
print(str)
如果不想转义,那么可以在字符串前加一个r,
例:str=r"xxx\nccc"
print(str)
- 字符串可以进行切片操作,来方便的截取其中的部分字符
语法格式:字符串变量名[头下标:尾下标] 获取的结果含头不含尾。
例:
a="abcdefg"
print(a[0:3])
print(a[0:-3])
- 字符串之间也可以使用加号进行拼接,使用乘号来多次输出
例:
a="abcdefg"
print(a+"123")
print(a*2)
- python的字符串是不可变的,所以不能对某一下标赋值
3.List
- 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。其中的元素类型可以互不相同,也可以进行嵌套。
- 列表也可以和字符串一样进行拼接和截取,截取后返回一个新的列表。同样含头不含尾。
- 列表中的元素是可以改变的。
例:
list = [123, “abcd” , 2.23,[456,"efg"] ]
tinylist = [123, 'runoob']
print (list)
print (list[0])
print (list[3])
print (list[0:3])
print (list * 2)
print (list + [789,"qwe"])
4.Tuple
- 元组和列表类似,也可以切片、拼接、重复输出。元组元素写在小括号 () 里,元素类型可以不相同,但元素不能修改。
- 元素不能修改的意思是元素的引用不能修改,也就是不能通过元组下标来修改元素,但元素本身的值可以变化
例:
a=123
list=[789,"abc"]
tuple = (a, 456, list)
list=[147,"asd"]
print(tuple)
print(list)
5.Set
- 集合,和数学上的集合概念相似,不保证内部元素的有序性、没有重复元素、可以进行并集、差集、交集的运算。
- 使用大括号 { } 或者 set() 函数可以创建集合,但如果要创建一个空集合则不能使用 { },因为 { } 是用来创建一个空字典。
- 正因为集合的无序性,所以不能够知道一个元素在集合中的具体位置,所以也就不能对集合采取切片操作。
例:
set1={"java","c++","c","c","python"}
print(set1)
set2={"java1","c++","c","c","python"}
print(set1-set2)
print(set1|set2)
print(set1&set2)
6.Dictionary
- 字典,顾名思义,就像一本新华字典一样,如果我们需要查到一个汉字,那么就需要通过拼音、偏旁等方法来得到一个页码,才能查到这个汉字。在python的字典中,这个“拼音”、“偏旁”被称为key(键),这个页码被称为value(值),字典正式通过这个key - value的方式来一一对应的存储元素。
- 正因为字典的一一对应的特性,所以key必须是唯一的。
- 字典用 { } 标识,它是一个无序的 key - value的集合。
例:
dict={"1":"我是key为1的值","xxxx":"我是key为xxxx的值"}
print(dict)
print(dict.get("1"))
print(dict.keys())
print(dict.values())
三、python流程控制
任何编程语言都绕不开三大流程控制语句,同时,任何一个功能都是由三大流程控制语句的组合来实现。
1.顺序流程控制
顺序流程控制就是自顶向下,一直走下去,而不考虑任何可能的折返、驻留等操作,一鼓作气完成所有语句,并且每条语句只执行一次。
例:
dict={"1":"我是key为1的值","xxxx":"我是key为xxxx的值"}
print(dict)
print(dict.get("1"))
print(dict.keys())
print(dict.values())
以上文代码为例,整个程序从字典的定义开始,到输出字典的所有value为止,每一条语句都在上一条语句执行完毕后才开始执行,并且执行成功后便不会再有被执行的可能。
2.分支流程控制
- 分支流程控制就是在程序有多种不同的执行方法时,使用条件来控制具体的执行语句。比如我们去买瓜。如果它保熟,那么我们就买,如果不保熟就化身华强(雾)…
格式:
if 条件判断式 :
具体操作
elif 条件表达式 :
具体操作
else :
具体操作
例:
a=int(input("请输入一个数:"))
if a>50 :
print("xx")
elif a>30 :
print("aaa")
else :
print("dddd")
当有多个if同时满足时,则将全部执行
例:
a=50
if a>30 :
print("xx")
if a>20 :
print("aaa")
- 三元表达式
三元表达式在很多语言中都有,而且格式基本一样,而python这个三元表达式的格式,就比较特立独行
格式 :
条件为True时返回的值 if 条件判断式 else 条件为False时返回的值
3.循环流程控制
循环操作十分常用,比如我们需要输出0-1000内的所有整数,或者是输出某一集合内的所有元素,这个时候就需要用到循环,它的核心就是重复相同操作。同时,python中循环也分为while循环和for循环两种。
- while循环
当条件判断式为True时才执行具体操作
格式:
while 条件判断式 :
具体操作
例:
while 2-1 :
print("233")
- for循环
格式:
for 条件判断式 :
具体操作
例:
for num in range(0,101,2):
print(num)
- 循环中断语句
一般情况下我们写循环都是为了在大量重复操作中得到一个特殊的操作(比如寻找一些特定的值),而得到后就没必要继续。那么就需要break语句来结束循环;或者我们在一大堆操作中不需要某些操作,那么我们也可以使用continue略过它。
例:
for num in range(0,101,2):
if num==2 :
print(num)
break
例:
for num in range(0,101,2):
if num==2 :
continue
print(num)
- else语句
循环操作也可以有else语句,它会在循环正常执行完毕之后再执行,for和while都可以用,但是不建议,因为一般情况下它作用不大,反而在代码比较复杂时会增大代码的阅读难度。
例:
for num in range(0,101,2):
if num==2 :
continue
print(num)
else:
print("我是else")
总结
无论学习任何一门语言,首先都要学习它的数据类型以及基础语法,python虽然说相对易学,但各种细节以及灵活运用都需要经常实践才能掌握。特别是对于学过java和c的人来说,某些python的语法特性反而会比较难以理解,就像一个从小被严加看管的的孩子突然飞出牢笼一样,自由的同时也会十分迷茫。
|