中科实训day02
1.注释
-
单行注释 # 多行注释’’’ ‘’’ (三对单引号)
-
注释的作用:增加程序的可读性,作为调试用,提高团队的合作效率
-
ctrl+/ 单行注释快捷键
ctrl+d 复制本行(选择区域)""" 多行注释:一对 三个双引号(或者单引号) age = 30 name = "小明" message = "haha" """
2.变量
-
Python是一门强类型语言
Python底层自己会判断数据类型
Python里面的变量必须赋值a=10 //Python底层 print(a) b=12.0 print(b,type(b)) // type是判断Python的数据类型 //备注:在Python中定义变量必须赋值,否则会报异常
3.标识符
在Python中所有可以自主命名的内容都属于标识符,
变量名、函数名、类名
4.标识符命名规则
-
只能包含字母、数字和下划线。变量名可以用字母或者下划线开头,不能以数字开头。
-
不能包含空格,但可以使用下划线来分割其中的单词
-
不能使用Python中的关键字作为变量名
-
建议使用驼峰命名法
驼峰命名法 User_name = "李四" 大驼峰(帕斯卡命名法) user_Name = "张三" 小驼峰
5.数据类型
a1=10 //整型
print(“a1的值为:”+a1)
print(a1,type(a1))//自动识别类型
a2=1200000022232
a3=12121_12121_21212 //整型,Python解释器会自动过滤特殊字符
print(a3,type(a3))
#数据类型 int String bool float list set tuple
demo = 1;
print(demo)
#bool默认值是True和False
#当bool的值为1的时候,返回值为true,bool类型可以参与整数类型的计算
demo1 = True
print(demo1,type(demo1))
demo2 = False
print(demo2,type(demo2))
#Python语言采用首行缩进的原理写代码
6.python语言的代码特性
-
采用代码缩进的原理,默认缩进四个空格,可以利用Tab键或空格键补全
-
Python语言代码的执行体,不在()里面,而是在:之后的执行体
-
Python语言里执行代码时,不会按照从上到下的原理
demo3 = 100 if demo3>120: print(“demo的值很小!!”) else: print(“demo3的值很大!!”) //浮点类型 demo4 = 12.0 demo4 = 12 //int和floot有什么关系? int(长和短),在Python里面没有此说法 //有取值无穷大,所以floot类型取值和int一样,不会损失数据的精度 print(demo4,type(demo4))
7.字符串
-
字符串string(Java) ------str(Python)
-
字符串的命名规则
(1)身份证号码?是什么类型 str 数字+X
(2)字符串里面可以有空格吗? ex:wanghu jiangshi //备注:一个空格可以导致数据泄露,并且一个空格可以占用不明确的资源空间。
(3)字符串里面可以有空格吗? ex:wanghu “ ” jiangsh
//空格 和 “ ” 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"> emo16 = f(120) //f是Python里面的关键字,不能作为变量、参数等使用。 demo17= f'hello {a2} {b2}' //格式化字符串,不建议使用,效率低
//Python 里面的{}大括号的说明
1.{}里面存放变量的名称和变量值
2.{}存放list 元祖 set集合 -----后面讲解
3.{}表示一个方法体
4.{}和 Java的 new、构造器一个功能name = “” print(f'欢迎{name} 光临!!) //这种获取值很消耗资源 -----通过list //None(空值)none表示不存在
1.None不会占用内存,但是会让程序进行大量执行,产生代码的执行体
demo15 = 100 print(demo15,type(demo15)) demo14 = None //在python里面不要经常使用None、 print(demo14,type(demo14))
Python语言的返回值都是通过type关键字操作 -----后续深入讲解type
8.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里面没有强类型和弱类型
9.字符串的切片 : 通过下标有0开始获取str的片段
-
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
-
切片的语法:[起始:结束:步长]
name = 'abcdef' print(name[0:3]) # 取 下标0~2 的字符 结果:abc 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]) //备注:多维列表
多行注释 编码可读性
10.字符串常用函数
-
find 检测字符串是否包含指定字符,如果是返回开始的索引值,否则返回-1
str1 = 'hello world' print(str1.find('lo'))
-
index 检测字符串是否包含指定字符,如果是返回开始的索引值,否则提示错误
str1 = 'hello world' print(str1.index('lo'))
-
count返回str1在string中指定索引范围内[start,
end)出现的次数str1 = 'hello world' print(str1.count('lo')) print(str1.count('lo',5,len(str11)))
-
replace 将str1中的str1替换成str2,如果指定count,则不超过count次
str1= 'hello world hello china' print(str1.replace('hello','HELLO')) print(str1.replace('hello','HELLO',1))
-
split (不建议使用,因为split会占用内存空间,没有任何价值,优化内容)
str1 = 'hello world hello china' print(str1.split(' ')) print(str1.split(' ',2))
-
capitalize 将字符串的首字母大写
str1 = 'hello world hello china' print(str1.capitalize())
-
title 将字符串中的每个单词的首字母大写
str1 = 'hello world hello china' print(str1.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 将字符串转换成小写
str1 = 'Hello World HELLO CHINA' print(str1.lower())
-
upper 将字符串转换为大写
str1 = 'hello world hello china' print(str1.upper())
-
ljust 返回一个原字符串左对齐,并使用空格填充至长度width的新字符串
str1 = 'hello' print(str1.ljust(10))
-
rjust 返回一个原字符串右对齐,并使用空格填充至长度width的新字符串
str1 = 'hello' print(str1.rjust(10))
-
center 返回一个原字符串居中,并使用空格填充至长度width的新字符串
str1 = 'hello' print(str1.center(15))
-
lstrip 去除字符串左边空白字符
str1 = ' hello' print(str1) print(str1.lstr1ip())
-
rstrip 去除字符串右边空白字符
str1 = 'hello ' print(str1) print(str1.lstr1ip())
-
strip 去除字符串两边空白字符
str1 = ' hello ' print(str1) print(str1.lstr1ip())
-
partition 可以将字符串以str1进行分隔成三个部分 str1前,str1,str1后
str1 = 'hello world hello china' print(str1.partition('world'))
-
join str1 中每个字符后面插入str1,构造出一个新的字符串
str1 = '_' list = ['hello','world','hello','china'] print(str1.join(list))
-
isspace 如果 str1 中只包含空格,则返回 True,否则返回 False.
str1 = ' ' print(str1.isspace())
-
isalnum 如果 str1 所有字符都是字母或数字则返回 True,否则返回 False
str1 = 'a123' print(str1.isalnum())
-
isdigit 如果 str1 只包含数字则返回 True 否则返回 False
str1 = '123' print(str1.isdigit())
-
isalpha 如果 str1 所有字符都是字母 则返回 True,否则返回 False
str1 = ‘abc' print(str1.isalpha())
空格和空白的区别?
- 空白是Python的首行缩进的语法而定,空白的空格本质是不一样的
- 空白Python解释器不解释,但是空格解释器结实,浪费内存
ljust:左对齐特性
- 利用空格填充内存,但是这个内存并不是占用空间的!而是一个虚拟内存,和数据库View一样
- 可以利用ljust对一些没有作用的脏数据可以利用ljust排挤出内存
Python的大小写很敏感 -------why?
- 基于数据库的考虑,数据库的规范,User_name User_id user_id user_age。
- 通过capitalize()可以将数据库/不规范的表/代码进行调整,Python解释器去执行的时候去操作,而不是发生在表现层,在底层。
- ’ ’ 单引号更加接近二进制字节码,让Python解释器更快、更加高效的执行,并且安全,数据好维护。
函数调用机制
- 第一步:必须定义变量/常量
- 第二步:通过变量名称/常量名称/元祖名称/列表名称调用函数
- 第三步:以上调用效率?较高。这样调用Python不会加载底层jar包
总结:其实Python的变量/常量就是一个对象
**技巧:对象.函数名称();
对象.方法名称();
Python里的面向对象的思想!**
Python的新特性(基于算法)
- Python3.2以后不支持单一参数,因为单一参数不可以和变量属性进行赋值向匹配
- Python里面支持常量的重新定义操作
键盘输入 input() 后续:input还可以继续操作算法
11.运算符
- 算数运算符
以下假设变量a=10,变量b=20
- 赋值运算符
- 比较运算符