“坚信坚持就是胜利,奋斗定能进步”
上一次学习到了Python软件就叫做Python解释器,打开一个文件后读取其中内容然后进行转换和执行从而得到最后的结果。
Python有两种执行方式
- Python解释器 已写好保存了的Python文件
- 先打开Python解释器,然后输入指令语句去执行(解释器一关闭什么都不会留下)
经常看到Python文件头部有两种注释句
- #!/usr/bin/env.python(告知解释器路径)
- # -*- cooding:utf8 -*- (告知用utf8编码来读取文件)
然而,这些是针对Python2来说的,Python3不用写这些,加了也不起任何作用,2若是不加则显示不出中文。
编码问题
- ascll(只能显示出英文)
- unicode(万国码,可显示出中文):至少要用16位来表示一个东西,也就是说尽管不需要这么多也得必须要这么多,导致资源浪费
- utf8(可显示中文):能用多少表示就有多少表示。中文占3个字节
- GBK:中文占2个字节
变量
例:
n = input(“请输入年龄:”) print(n)
input()会等待用户的输入,输入完毕后将内容给到n。然而当Python给到C语言去转换机器码时,是剥掉这个变量名为n的变量,直接用的是输入的内容,如19。
1.变量名数字字母下划线组成,但是拒绝以下几点
- 数字开头
- 不能是关键字(慢慢积累)
- 不能含有Python内置的东西(如 sum()内置的求和功能函数)
2.变量名的命名:不用驼峰式userAge ,而用下划线 user_name
3.变量一旦修改或者拼接,会分配出一块新的内次去做
条件语句
a = 5 if a ==1: #注意冒号 print("OK") elif a==2: #elif = else if print("Hi") print("...") #一个代码块里的要缩进同等距离 elif a==3: print("Hello") else: print("Fine")
循环语句
while 1==1: print("OK") #这是一个死循环 永远不会有运行尽头 while 1==1: print("OK") continue #终止此次循环,开始下一次循环,故仍是一个死循环 print("Ohh") #该句永不会被执行,因为continu while 1==1: print("OK") break #终止整个循环,执行循环体以外的语句 print("已跳出死循环")
pass关键字
if 1==1: pass #pass使得词行不被执行,运行结果为空
基本数据类型
1.分类
-
-
- 数字int (Python3里无论多长的数字都是int整型;而Python2里过长到一定范围外的数字叫长整型long)
- 字符串str
- 列表list
- 元祖tuple
- 字典dict
- 布尔值bool
-
2.运算
- 字符串
①加法
a = "hi" b = "hello" c =a+b #结果是hihello c = b+a #结果是hellohi
②乘法
a = "hi" b = a*2 #结果是hi被重复了2次 hihi
- 数字
①加法
②减法
③乘法 a = 2**4 (2的四次方)
④除法 a = 39//8 (39除8取商,为4)
b = 39%8 (39除8取余,为7)
3.功能
- 字符串
①join():将字符串按照自定义的样式逐字断开,注意join的使用格式 “样式”.join(字符串)
test = "学习开始" v = "/".join(test) print(v) #结果为 学/习/开/始
②split():根据自定义的符号去划,自定义的数量(逗号数而非字符串数)来分割
test = "abcahjauaadj"
v = test.split("a",5) #找a,碰到a就划一截(不包含a),去划成5个逗号,6段
print(v) #结果是 ['', 'bc', 'hj', 'u', '', 'dj']
③find():从头开始寻找,找到的第一个目标关键字的位置(索引下标地址),找不到为-1
test = "abcbhjaaadj" v = test.find("b",0,1) #从[0,1)内去找第一个b的下表 故找不到 结果为 -1 print(v) test = "abcbhjaaadj" v = test.find("b",0,2) #从[0,2)内去找第一个b的下表 可找到 结果为1 print(v)
④strip():左右去掉指定内容,若不指定则是去掉空格
a = "alexal" v = a.strip("al") print(v) #结果为 ex 即左右去掉了指定的 “al” a = " alexal" v = a.strip() #去空格的意思,注意去空格什么都不写就行,不是 “ ” print(v) #结果 "alexal"
⑤upper():字符串内全变成大写
test = "ajjjIOOMnm" a = test.upper() #无法指定只变哪一个字母,要变都变 print(a) #结果是 AJJJIOOMNM
⑥lower():字符串内全变成小写
test = "ajjjIOOMnm" a = test.lower() print(a) #结果是 ajjjioomnm
⑦test[index]:“切片” ,根据下标去获取一个或一串字符或字符串
test = "abcd" a = test[0] print(a) #结果:a test = "abcd" a = test[0:3] #[0,3)只能获取3个 print(a) #结果:abc
⑧len():获取字符串的长度(列表里也有次功能)
⑨for循环:
test = "学习开始" index = 0 while index<len(test): v = test[index] print(v) index+=1 #结果是: #学 #习 #开 #始 test = "学习开始" for a in test : #让a变量在test里去循环,并一个个打印出 print(a) #同上方结果
(注:for循环内部break与continue也适用)
test = "学习开始"
for sty in test :
print(sty)
break #结果:学
for sty in test :
continue
print(sty) #结果 什么都不会输出
⑩range():创建范围内的数字,可连续也可不连续
a = range(100) print(a) #Python3里 结果是 range(0,100) a = range(100) #a = range(0,100) 也可以 for b in a: print(b) #结果是从0-99 ,通过一个一个数字的打印,会省内存 a = range(0,100,5) for b in a: print(b) #结果是从0-95 数和数之间差5
练习:
-
将一串字的下表打印出来并对应着每个字符
1 test = "学习开始" 2 for out in range(len(test)): 3 print(out, test[out])
运算符
结果是数 ↓
- 算数运算符
- 赋值运算符
结果是布尔值(True False)↓
- 比较运算 不等:!= <>
- 逻辑运算
- 成员运算
- in // not in
test = "学习开始" a = "学" in test print(a) #结果是True
- in // not in
浙公网安备 33010602011771号