命名规范:
标识符:即我们自己在写代码的时候取得名字。命名的符号。
例如:项目名 project name 包名:package name 模块名即文件名: .py
取名字(标识符)时的规范:由字母数字下划线组成,但是不能以数字开头。
命名时不同字母数字之间最好用下划线隔开,可提升代码的可读性 例如:test_0222
命名时不能用关键字 int if while
a=1 a为变量名 , 变量名也是标识符也要符合上述规范。
注释:
单行注释: ctrl+/
多行注释:成对单引号、成对双引号、成对三个引号 ' ' " " ''' '''
常见报错:
name ‘a’ is not defined(变量没有被定义,没有被赋值)
注:当要使用某个变量的时候要确定它已经被定义和赋值
Can't convert 'int' object to str implicitly(数据类型不一致)
数据类型:
数据类型分为:整型和浮点型
整形:int 例如 a=10
浮点数:float 例如 a=10.0
可直接进行加减乘除,例如:print(a+20)
布尔值:bool boolean True和False首字母必须大写
字符串:str 成对的单引号、双引号、三引号都是字符串
s=1是整形 str(s)则强制转化为字符串类型
type(数据)函数是查看数据类型的,例如 a=“1” print(type(a))
len(数据)函数是用来统计数据的长度,例如s=‘hello!’ print(len(s))
字符串里的元素:单个字母、数字、汉字、单个符号都称之为元素。
例如:s=‘hello!’ 里面有六个元素
字符串取值:字符串名[索引值] 例如:s=‘hello!’ 字符串s的第5个元素就是“!”,print(s[5])和print(s[-1])打印出来就是‘!’
索引:python索引正序是从0开始标记的(例如:0,1,2,3,4,5),返序是从-1开始的(例如:-1,-2,-3,-4,-5)
字符串取多个值:切片 字符串名[索引头:索引尾:步长] 步长默认为1 例如:print(s[1:5:1]) 1 2 3 4 5取头不取尾即输出为‘ello’ print(s[1:5:2]) 1 3 5 即输出为‘el’
print(s[:])这个是从正无穷取到负无穷
将s=hello!输出为倒序,即print(s[-1:-7:-1])和print(s[::-1])
字符串的分割:字符串.split() 列表里的子元素都是字符串类型 返回的则是一个列表类型的数据
指定的切割符 例如 print(s.split('l')) 则输出['he','','o!']
指定切割次数 例如 print(s.sprint('l',1)) l切割1次输出为[helo!]
print(s.sprint('l',2)) l被切割2次输出为[heo!]
字符串的替换: 字符串.replace(指定替换值,新值)
例如:s='hello!' new=s.replace('l','@') print(new)则输出he@@o!
字符串去除指定字符: 字符串.strip(指定字符) 只能去掉头和尾的指定字符
print(s.strip()) 则默认去掉空格
例如:s='hello!' print(s.strip(‘h’))则输出ello
字符串拼接: 用+号拼接 要保证 + 号左右两边的变量值类型要一致
例如:a=‘张三’ b=‘你好’ print(a+b) 则输出 张三你好
字符串格式化输出: % format
格式化输出1:format 用{}来占坑
例如:name='张三' age=18 print('今年{}{}么?'.format(name,age)) 则输出为 今年张三18么?
name='张三' age=18 print('今年{1}{0}么?'.format(name,age)) 则输出为 今年18张三么?
格式化输出2:用%来占坑 %s字符串 %d数字 %f浮点数
例如:name='张三' age=18 print('今年{%s}{%d}么?'%(name,age)) 则输出为 今年张三18么?
%s可以填任何数据
%d只能填数字 整型 浮点数
%f可以填数字
%d保留整数部分
name='张三' score=99.99 print('{%s}考了{%d}分'%(name,score)) 则输出为 张三考了99分
%f自动补小数点后6位
name='张三' score=99.99 print('{%s}考了{%f}分'%(name,score)) 则输出为 张三考了99.9900分
.几f则小数点后保留几位,例.3f
name='张三' score=99.99 print('{%s}考了{%.3f}分'%(name,score)) 则输出为 张三考了99.990分
列表 list 符号[ ]
a=[ ] 可以存在空列表,列表里面可以包含任何类型的数据,列表里面的元素根据逗号进行分隔
例如:a=[1,0.02,'hello',[1,2,3],True] 列表a一共有5个元素。
如果要存储的数据是同一个类型的建议用列表
往列表里增加数据:append 添加在末尾,只能添加一个数据 ,可以添加任何类型数据
例如:a[1,2,3] a.append('4') print(a)输出为[1,2,3,4]
insert 插入数据 要根据索引指定位置插入
例如:a[1,2,3] a.insert('3') print(a)输出为[1,2,3,4]
删除 pop()根据索引删除某个元素,什么都不填默认删除最后一个元素,
例如:a=[1,2,3,4] a.pop(2) print(a)输出为[1,2,4]
a=[1,2,3,4] a.pop() print(a)输出为[1,2,3]
remove()指定删除某个值
例如:a[‘张三’,‘李四’,‘王五’] a.remove(‘张三’) print(a)输出为['李四',‘王五’]
res=a.pop() 会返回被删除的那个元素 函数return关键字
a=['张三','李四','王五'] b=a.pop(1) print(b) 则输出为[‘张三’,[‘王五’]
修改 a[索引值]=新值
例如:a=['张三','李四','王五'] a[2]='小明' print(a)输出为[‘张三’,'李四','小明']
元组tuple 符号() 可以存在空元组 例如a=()
元组里面可以包含任何类型的数据
元组里面的元素根据逗号来进行分隔
获取元组里面的单个值: 元组[索引值] 例如:a=('张三','李四','王五') print(a[2])输出为王五
元组一般用来操作数据库的时候会存放条件,元组不支持任何修改
字典 dict 符号{ } 大括号,花括号 输出无顺序 字典里的key必须是唯一的
可以存在空字典a={}
字典里面数据存储方式:key:value
字典里面的value可以包含任何类型的数据
字典里面的元素 根据逗号来进行分隔
例如:a={'name':'张三','age':'8岁','class':'3年级'}
字典取值: 字典[key]
例如:print(a['name']) 输出为张三
删除: pop[key]
例如:a.pop('name') print(a)输出为'age':'8岁','class':'3年级'
b=a.pop('name') print(b)输出为'张三'
新增: a[新key]=value
例如:a={'name':'张三','age':'8岁','class':'3年级'} a['体重']='65kg'
print(a) 输出为{'name': '张三', 'age': '8岁', 'class': '三年级', '体重': '65kg'}
修改: a[已存在的key]=新value
例如:a={'name':'张三','age':'8岁','class':'3年级'} a['class']='四年级'
print(a) 输出为{'name': '张三', 'age': '8岁', 'class': '四年级'}
运算符:5大类
算数运算符:+ - * %
模运算/取余运算: 一般用来判断某个数是奇数还是偶数
例:a=4 print(a%2) 若输出为0则是偶数,反之是奇数
赋值运算符: = += -=
把左边的值赋值给右边就叫赋值运算,例如a=5
若a=5 a+=5 则print(a)输出为10 相当于a=a+5
若a=5 a-=2 则print(a)输出为3 相当于a=a-2
比较运算符:> >= < <= != == 6种运算符
若a=10 b=5 print(a>b) 则输出True
逻辑运算符: and or 拓展:not
and的左右两边结果都为真才为真,只要有一个为假就为假
or的左右两边结果都为假才为假,只要有一个为真就为真
逻辑运算符返回的值也是布尔值
成员运算符: in not in
返回值也是布尔值
例如:s=‘hello’ print(‘o’ in s) 则输出为True
例如:d=[1,2,3] print(‘1’ in d) 则输出为True
例如:t={'age':'30','name','张三'] print(‘age’ in t) 则输出为True 字典的判断主要是key
控制语句:分支分流
循环语句 for while
判断语句 if elif else
当if后面的语句满足条件,运算结果是True ,那么就会执行他的子语句
例如:
age = 20
if age>18
print(“恭喜你,成年了”)
则输出 恭喜你,成年了
if条件语句(比较/逻辑/成员运算 均可)
用字符串、元组、列表、字典去控制 空数据 ==False 非空数据==True
例如: a=[] if a:print(‘你好’)则不会执行,无输出
若: a=[1] if a:print(‘你好’)则输出为 你好
直接用布尔值去控制
例如:if True: print(‘你好’) 则输出为 你好
if 条件语句 一个条件语句里面只能有一个if和一个eles eles后面不能添加条件语句
子语句
eles:
子语句
例如:age=20
if age>=18:
print('成年')
else:
print(‘未成年’)
if 条件语句 if elif可以加条件语句 else后面不能添加条件语句
子语句
elif 条件语句
子语句
else:
子语句
例如:age=20
if age>=18:
print('成年')
elif 0 print('未成年') else: print(‘您输入的年龄有误’) Random随机数 例如:从1-9生成随机数,然后输入一个数字跟这个随机数比较,若大于,则打印bigger,若小于则输出less import random a=random.randint(1,9) b=int(input('请输入数字')) if a print('bigger') elif a>b: print('less') 循环 for while for循环: for item in 某个数据类型:(数据类型包含:字符串、列表、元组、字典、集合) for循环的循环次数由数据的元素个数决定 例如: a=[1,2,3,4,5] for b in a: for循环遍历a里面的元素 然后赋值给b print(b) 输出为: 1 2 3 4 5 如何变量a是字典的话的,则遍历的是key,返回的也是key d={‘name’:‘小明’,‘age’:‘20’} print(d.values())获取字典里面的所有values值 print(d.keys())获取字典里面的所有key值 for item in d.values(): print(item)遍历的是字典d里面的所有value值 range函数 生成整数序列 range(m,n,k) m头,默认为0 n尾 k步长,默认为1,取头不取尾 例如:a=range(1,5,1) print(list(a))输出为1,2,3,4 a=range(5) print(list(a))输出为0,1,2,3,4 while 控制循环 while 条件表达式 代码块 首先判断while后面的条件表达式是否成立,如果是True,那就执行代码块。执行完毕后继续判断 while后面的条件表达式,直到false为止。为防止代码进入死循环,需加一个变量来控制次数 例如:a=1 while a<=10: a=a+1 循环10次 while 与 if 语句搭配使用 break continue 使用函数可提高代码的复用性例如: def Total(b): a=0 sum=0 while a a+=1 sum=a+sum print(sum) Total(b=5) Total(b=10) 动态参数/·不定长参数 *args arguments 在函数内部体现为元组 def make_sandwich(*args): print(args) make_sandwich(‘生菜’、‘鸡蛋’、‘培根’、‘牛肉’) 关键字参数 key-value **kwargs key word 必须加** 在函数内部体现为字典 def kw_function(**kwargs): print(kwargs) kw_function(x=1,y=2) 变量作用域、 全局变量 和局部变量 1、作用范围不一样 全局 在模块里面都能调用 函数的局部变量只能用于函数内 2、当全局和局部变量同名且同时存在的时候 函数优先调用局部变量 3、当局部变量没有 就优先用全局的 4、global声明一个全局变量 a=1 全局变量 def add(b) a=5 局部变量 print(a+b) add(10) 输出结果为15