实训day02
1.注释
- 注释的作用:增加程序的可读性、作为调试用、提高团队的合作效率。
- 注释的分类:
<1>单行注释 以井号(#)开头,右边的所有内容当做说明
<2>多行注释 以三对单引号(’’’注释内容’’’)将注释包含起来,多行注释、编码可读性强
2.变量 Python(一门强类型语言)
a=10 //Python底层
print(a)
b=12.0
print(b,type(b)) // type是判断Python的数据类型
备注:在Python中定义变量必须赋值,否则会报异常。
3.变量的命名
User_name="李四" //大
user2_Name="张三" //小
※2user2_name="某某"是错的,数字不能开头,采用驼峰命名法,大驼峰(帕斯卡命名)、小驼峰
4.标识符(Python中所有可以自主命名的内容 ex:变量名、函数名、类名)
1.标识符必须遵循标识符的规范
<1>. 标识符中可以含有字母、数字、_,但是不能使用数字开头,例子:a_1 _a1 _1a
<2>.标识符不能是Python中的关键字和保留字,也不建议使用Python中的函数名作为标识符,因为这样会导致函数被覆盖
<3>.命名规范:在Python中注意遵循两种命名规范:
① 下划线命名法
所有字母小写,单词之间使用_分割,Ex:max_length min_length hello_world xxx_yyy_zzz
② 帕斯卡命名法(大驼峰命名法)
首字母大写,每个单词开头字母大写,其余字母小写,Ex: MaxLength MinLength HelloWorld XxxYyyZzz
※如果使用不符合标准的标识符,将会报错 SyntaxError: invalid syntax
5.数据类型
print
七种类型:int、String、bool、float、list、set、tuple
a1=10 //整型
print(“a1的值为:”+a1)
print(a1,type(a1))//自动识别类型
a2=1200000022232
a3=12121_12121_21212 //整型,Python解释器会自动过滤特殊字符
print(a3,type(a3))
demo=1
print(demo) // bool默认值是true和false
demo1 = True //当bool的值为1的时候,返回值为true,bool类型可以参与整数类型的计算
print(demo1,type(demo1))
demo2 = False
print(demo2,type(demo2)) //当bool的值为0的时候,返回值为False,bool类型可以参与整数类型的计算
//浮点类型
demo4 = 12.0
demo4 = 12 //int和floot有什么关系? int(长和短),在Python里面没有此说法
//有取值无穷大,所以floot类型取值和int一样,不会损失数据的精度
(demo4,type(demo4))
※Python语言采用的是首行缩进的原理写代码
Python语言的代码特性:
-
.采用代码所进的原理,默认缩进4个空格,可以利用Tab键或者空格键补全。
-
Python语言的代码执行体,不在{}里面,而是在:之后写代码的执行体。
-
Python语言里面执行代码的时候,不会按照从上到下的原理。
demo3 = 100 if demo3>120: print(“demo的值很小!!”) else: print(“demo3的值很大!!”)
6.字符串
1. 字符串string(Java) ------str(Python)
2. 字符串的命名规则
<1>身份证号码?是什么类型 str 数字+X
<2>字符串里面可以有空格吗?
ex:wanghu jiangshi 备注:一个空格可以导致数据泄露,并且一个空格可以占用不明确的资源空间。
<3>字符串里面可以有空格吗? ex:wanghu “ ” jiangsh
3.空格 和 “ ” null 0 的区别?
① 空格和“ ”可以占用内存,但是不参与计算,不能使用。
②null是一个数据类型的默认值,它可以释放内存空间,不消耗内存空间,建议使用;
③0 指的是具体的资源内存,可以参与计算。
demo5 = “abc”
demo6 = “wanghu jiangshi”
demo7 = “wanghu “ ” jiangshi”
print(demo5,type(demo5))
print(demo6,type(demo6))
print(demo7,type(demo7))
demo8 = “abcdefg”
demo9 = “HANCD”
demo11 = 12
demo10 = demo8 + demo9 + demo11 //Python语言也具有类型转换
print(demo10,tyoe(demo10))
b = “Hello %s” %“孙悟空” // % 占位符 可以释放资源
demo13 = “Hello %2f” % 12.0
print(b,type(b))
print(demo13,type(demo13)) //Hello 12.000000 <class"str">
demo16 = f(120) //f是Python里面的关键字,不能作为变量、参数等使用。
demo17= f'hello {a2} {b2}' //格式化字符串,不建议使用,效率低
※Python 里面的{}大括号的说明
-
{ }里面存放变量的名称和变量值
-
{ }存放list 元祖 set集合 -----后面讲解
-
{ }表示一个方法体
-
{ }和 Java的 new、构造器一个功能
name = '' print(f'欢迎{name} 光临!!) //这种获取值很消耗资源 -----通过list
※None(空值)none表示不存在
*None不会占用内存,但是会让程序进行大量执行,产生代码的执行体
demo15 = 100
print(demo15,type(demo15))
demo14 = None //在python里面不要经常使用None、
print(demo14,type(demo14))
Python语言的返回值都是通过type关键字操作 -----后续深入讲解type
※Python类型转换
类型转换四个函数 int()、float()、str()、bool()
demo16 = True
demo17 = int(demo16)
print(demo17,type(demo17))
demo18 = float(demo17)
print(demo18,type(demo18))
demo19 = str(“demo20”)
总结:Python里面没有强类型和弱类型
4.字符串的切片 : 通过下标有0开始获取str的片段
①切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
②切片的语法:[起始:结束:步长]
demo21 = “abcdefghigk”
print(demo21[1]) //b
print(demo21[2]) //c
print(demo21[4]) //e
print(demo21[1:2]) //b
print(demo21[1:3])//bc
print(demo21[1:4])//bcd
print(demo21[1:-2])//bcdefghi
print(demo21[1:-3])//bcdefgh
print(demo21[1:1:1])//bcdefgh 步长为1
list = {12,12,12,12,3232,34343} //列表
print(demo22[2:1:3]) //备注:多维列表
5.字符串操作
在python里面函数的关键字默认的找色功能是“红色”
1.字符串通过find函数可以指定的索引
2.如果是返回开始的索引值,否则是-1
3.字符串常用函数
①find函数:检测字符串是否包含指定字符,如果是返回开始的索引值,否则返回-1
name = 'wanghubcd'
print(name.find('w'))
print(name.find('wd'))
②index函数:检测字符串是否包含指定字符,如果是返回开始的索引值,否则提示错误
name1='abcdefg'
print(name1.index('w')) //index如果没有匹配的字符串,则报错误substring not found
print(name1.index('ab'))
print(name1.index('a'))
//为什么要学习?通过index、find方法可以获取指定字符串位置的值(ex:后续可通过index、find截取、赋值、替换字符串的值)
③count函数:返回str1在string中指定索引范围内[start, end)出现的次数;count函数表示统计在str里面出现的次数多少。
name2 = 'bookreadwhite'
print(namae2.count('book')) //1
print('name2的值为:',name2.count('b'))
print('name2的值为:',name2.count('o'))
④replace函数:将str1中的str1替换成str2,如果指定count,则不超过count次
name3 = 'hello world chinese'
print('name3的值为:',replace('wanghu'))
name3 = ‘helloworldchinese’
print('name3的值为',name3.replace('wanghu'))
print('name3的值为:',name3.replace('wanghu','wqwq'))
⑤split函数:如果 maxsplit有指定值,则仅分割 maxsplit 个子字符串
str1 = 'hello world hello china'
print(str1.split(' ')) //不带参数的是直接分割
print(str1.split(' ',2)) //2表示的按照数字分割
//split不建议使用,因为split会占用内存空间,没有任何价值,优化内容
⑥capitalize函数:将字符串的首字母大写
name4 = “abcdefef”
print('name4的值为:',name4.capitalize())
⑦title函数:将字符串中每个单词的首字母大写
str1 = 'hello world hello china'
print(str1.title()) //title函数其实就是在将空格压缩,性能较可以
⑧startswith函数:检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
str1 = 'hello world hello china'
print(str1.startswith('hello')) //单词不可写错,顺序不可写错
⑨endswith函数:检查字符串是否是以 obj 结尾, 是则返回 True,否则返回 False
str1 = 'hello world hello china'
print(str1.endswith('china'))
⑩lower函数:将字符串转换为小写
⑪upper函数:将字符串转换为大写
⑫ljust ----- leftjust函数:返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
name5 = '' guoyifan hello world'
print(name5.ljust(50))
※ljust : 左对齐 特性:
1.利用空格填充内存,但是这个内存不是占用空间的!而是一个虚拟内存,和数据库View一样
2.可以利用ljust对一些没有作用的脏数据可以利用ljust排挤出内存。
⑬rjust函数:返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
⑭center函数:返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
⑮lstrip函数:去除字符串左边空白字符(rstrip、strip----右边、中间,与lstrip类似)
str1 = ‘ hello’
print(str1)
print(str1.lstrip()) // lstrlip 取消空白
name6 = ' guoyifan '
print(name6.lstrip())
6.一些知识点
※空格和空白的区别?
1.空白是基于python的首行缩进的语法而定,空白和空格本质是不一样的。
2.空白python解释器不解释,但是空格python解释器解释,浪费内存。
※键盘输入 input() 、后续:input还可以操作算法
print('您好:请输入您的姓名:')
name = input()
print(name)
※扩展:函数的而调用机制
1.第一步:必须定义变量/常量
2.第二步:通过变量名称/常量名称/元祖名称/列表名称等调用函数。 ex:name.函数(参数1,参数2,。。。。。。参数N)
3.第三步:以上调用效率较高,这样调用python不会加载底层jar包。
4.总结:其实python的变量/常量就是一个对象
5.技巧:对象.函数名称();
对象.方法名称();
※python里面的面向对象的思想!
※python的新特性
1.python3.2以后不支持单一参数,因为单一参数不可以和变量属性进行赋值相匹配!
2.python里面支持常量的重新定义操作!
※python的大小写很敏感 -----为什么?
1.基于数据库的考虑,数据库规范,User_name\User_id uesr_id\user_age
2.通过capitalize()可以将数据库/不规范的表/代码进行调整,(python解释器去执行的时候去操作,而不是发生在表现层,在底层)
3.‘ ’单引号更加接近 二进制字节码,让python解释器更快、更加高效的执行,并且安全、数据更好维护
7.运算符
1.算术运算符
a = 100 //int
b = 200 //int
d = 12.0
c = a+b
e = a+b+d
print('a+b的值为:',c)
print('a+b的值为:',type(c))
print('a+b+d的值为:',e)
print('a+b+d的值为:',type(e))
f = a-b
print(f)
※取余
a1 = 100
a2 = 0
a3 = 100/a2
print('a3的值为:',a3) #ZeroDivisionError:division by zero ----异常处理后面讲解
a4 = a1/a5
print('a4的值为:',type(a4))
b1 = 12
b2 = 5
b3 = b1/b2
b4 = b1%b2 //取模运算
b5 = b1//b2
b6 = b1**b2
print('b3的值为:'b3’)
print('b4的值为:'b4‘)
print('b5的值为:'b5‘)
print('b6的值为:'b6‘) //幂次方
※不同类型加减乘除
c1 = True
c2 = 10
c3 = c1+c2 //python计时器会自动匹配为True为1进行计算
print('c2的值为:',c3)
d1 = False
d2 = 10
d3 = d1+d2
print('d3的值为:',d3)
2.赋值运算符
1.所有的赋值运算符都是基于 = 展开扩展
e1 = True
e2 = 14
e3 = 10000
e4 = e1+e2*e3 //靠的是python解释器,python可以进行科学计算
print('e4的值为:',e4)
print('e4的值为:',type(e4))
//bool类型进行运算的时候,结果为int
+= -= (一般用于循环里边,单个+=、-=不建议实现)ex:i+=1 ==== i=i+1
f1 = 12
f2+=10 //此写法需要先决条件 ex:循环语句