Python是什么?
Python是一种解释器。
解释器的作用是什么?
解释器是用来运行文件的,是为了把程序员的编程语言解释成机器语言(0,1)。
解释器包括cpython和ipython. 通常我们会用pycharm集成开发环境IDE来做Python开发,它的好处有:
- project管理
- 智能提示
- 调试代码
- 解释代吗
pycharm修改解释器
【project:项目名称】–【project interpreter】–【设置图标】–【Add】–浏览到目标解释器项目管理
- 打开项目
[file]–[open]–浏览选择目标项目根目录–[ok]–选择打开项目方式{this window, new window, attach} - 关闭项目
[file]–[close project]/[close project in current window] - 注释
单行注释 # (ctrl+/)
多行注释 成对单引或者成对双引
“””
balabala
balabala
“””
‘’’balabala
balabala
‘’’
变量命名规则
大驼峰:每个单词首字母大写,如:MyName
小驼峰:第二个(含)以后的单词首字母大写,如:myName
下划线:如my_name
变量是临时存储在内存中的,一旦程序执行完毕,变量也就跟着消失了
格式化输出
- s% 字符串 [%s功能比较强大,可以输出整型和浮点型的数据]
- d% 十进制整数
- f% 浮点数
格式化输出多个数时,
1.用%(多个变量名用逗号隔开)
print(‘我是%s, 今年%d, 学号是%d’ % (name, age, stu_id))
2.用f‘’格式输出
print(f’我是{Tom}, 今年{18}岁,学号是{1} ‘) 语法是:f ‘{变量名/表达式}’ python3.6
3.两个小技巧
小数点后保留两位:%.2f
三位格式的数字输出:%03d
4.常用的两个转义字符 - \n 换行
- \t 制表符,一个tab键等于4个空格
输入函数
输入函数为input( ‘提示信息’ )
当程序执行到input,程序处于等待用户输入状态,输入完成后程序才能继续向下执行。
函数input接收到的数据一般存到一个变量中(程序用来验证数据是否已经接收成功)。
函数input接收到的数据是字符串类型,一般会转换成int型。
转换数据类型的函数有: - int(x) 将对象x转换成整型
- float(x) 将对象x转换成浮点型
- str(x) 将对象x转换成字符串型
- eval(str) 用来计算在字符串中的有效python表达式,并返回一个对象(将对象转换成字符串里面的表达式)
- str=’(1, 2, 3)’ eval(str) 后变成了 str1=(1, 2, 3)
- tuple(s) 将序列s转换为一个元组
- list(s) 将序列s转换为一个列表
pycharm交互式开发
python console 类似于jupyter的交互式功能,即不需要用print输出函数,能快速便捷地给出变量的值。
console缺点:只是把变量的值简单存储在了临时变量中而不能存在硬盘上,后面需要用的时候就会找不到了。
因此只能进行简单测试,复杂的测试还是需要测试.py文件的留存代码。运算符的分类
算数运算符 +-/ 图片: https://uploader.shimo.im/f/RrLdyGRksXoEdhJO.png
赋值运算符 等号左边的变量 = 将等号右边的结果赋给
复合赋值运算符 c+=a 即 c = c+a; c-=a 即 c = c-a
举个栗子:c=10; c= 1+2; # 先算复合赋值运算右边表达式1+2=3, 再算复合赋值运算符的算数运算,因此最后c=10*3=30
比较运算符 返回对象是布尔型(false or true)
逻辑运算符 and/or/not,返回对象是布尔型
and: 如果参与逻辑运算的两个数字,只要有一个为0,则and之后的结果为0;否则结果为最后一个非0数字。
a=0, b=1, c=2
a and b #0
b and c #2
c and b #1
or:只有所有值为0结果才为0,否则结果返回第一个非0数字
a or b #1
b or c #1
c or b #2条件判断语句 (每次只执行一次语句,满足条件的语句执行,不满足的不执行)
if 条件1:
elif 条件2:执行语句1
else:执行语句2
执行语句3
用Python表示随机数
从random模块导入random,randint(start, end)函数三目(元)运算符
条件成立的表达式 if 条件 else 条件不成立的表达式while循环
while 条件:
用计数器时,初始值一般设为i=0而不是i=1, 循环结束条件一般设为i<5而不是i<=4条件成立重复执行的代码1 条件成立重复执行的代码2
break 和 continue
break 是终止此循环,即第三个苹果吃完后不再吃第四个、第五个
continue 是退出当前循环继续执行下一次代码,即第三个不能吃之后,继续吃第四个和第五个,注意continue之前一定要进行计数器处理,否则会进入死循环
if i == 3:
i += 1
continue
while…else
while 条件:
else:条件成立重复执行的代码
for 循环语句循环正常结束后要执行的代码 # while中如果用break跳出循环,则不执行此代码 # 如果用continue跳出循环,则执行此代码
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
for…else # else指的是循环正常结束之后要执行的代码,即break终止循环的情况,else下方缩进的代码将不执行
for 临时变量 in 序列:
重复执行的代码
else:
循环结束之后要执行的代码字符串
1.学习字符串的必要性:
1).文件的读写内容属于字符串类型
2).从网页上爬到的数据属于字符串类型
3).input函数得到的数据属于字符串类型
单引号(’ ‘)、双引号(“ “)、单三引号(‘’’ ‘’’)、双三引号(“”” “””)三种方式都能用来表示字符串,不同点在于三引号支持换行。
如 ‘hello world’
‘’’ hello
world’’’
当字符串中存在缩写,即出现单个单引号时,要么给整条字符串用双引号;要么给缩写处的单引号加转义字符\
str = ‘abcdef’
把这个字符串赋给str这个变量临时存储在内存中,计算机会为所有的字符分配一个下标,从零开始计数,如果要精确地取某一个字符,只需要str[下标]即可。
2.切片
[start, end, step]:左闭右开型 - 字符串常用操作方法
查找子串在字符串中的位置或者次数 (start, end参数可以省略,表示在整个字符串中查找)
用 find(子串,start, end) 检查某个字串是否在这个字符串中,如果存在则会返回子串的首字符所在的下标;如果不存在则返回-1
用 index(子串,start, end) 检查某个字串是否在这个字符串中如果存在,就会返回子串首字符所在的下标;如果不存在则报错
用 count(子串, start, end) 表示子串出现的次数,如过不存在则为0
rfind(),rindex() 对一个序列从后向前查找子串 - 修改旧字符串的方法
用replace(旧子串, 新子串,替换次数) 如果替换次数参数不写,则表示替换所有旧子串
oldstr = ‘myname’
newstr = oldstr.replace(‘y’, ‘e’)
print newstr: mename; oldstr: myname
说明 # replace不会修改旧字符串,只是把新字符串作为返回值返回给了新的变量,说明字符串是不可变数据类型 - 分割字符串
用split(分割字符,分割字符出现的次数),返回一个列表数据,返回次数+1个字符
join():用一个字符或字符串合并字符串,即将多个字符串合并为一个新的字符串 - 字符串大小写转换
capitalize():将字符串第一个字符转换成大写
title():将字符串每个单词首字母转换成大小写
lower():将大写转小写
upper():将小写转大写 - 字符串对齐
rjust(长度,填充字符) # 字符串右对齐
ljust(长度, 填充字符) # 字符串左对齐
center(长度,填充字符) # 字符串居中齐 - 字符串判断
startswith(子串, start, end) 检查字符串是否以指定子串开头,是则返回true,不是则返回false
endswith(子串, start, end) 检查字符串是否以指定子串结尾,是则返回true,不是则返回false
isalpha(): 如果非空字符串中所有字符都是字母则返回true,否则返回false
isdigit(): 如果所有字符只包含数字则返回true, 否则返回false
isalnum(): 如果字符串由数字或字母或者两者组合则返回true,否则返回false
isspace():如果字符串中只含有空格则返回true, 否则返回false列表的形式、常用操作
- 列表的格式
[数据1,数据2,数据3….]列表常用操作
1.用下标进行精准查找 list[下标]
2.index(数据, start, end)返回指定数据所在位置的下标
3.count(数据)返回指定数据在序列中出现的次数
4.len(序列)返回序列中数据存在的个数
5.查找某个数据是否存在用 in 或者 not in,在则返回true,不在则返回false 应用案例:注册邮箱账号 - 插入数据操作
1.在序列末端添加一个数据用append(数据)和extend(数据),不同点在于当追加一个序列时,append是将整个序列追加到原序列,而extend会把序列拆开,然后逐一追加原序列中
list=[‘Tom’, ‘Ann’]
newlist = list.extend(‘xiao’)
newlist: [‘Tom’, ‘Ann’, ‘x’, ‘i’, ‘a’, ‘o’]
2.在指定位置添加数据用insert(位置下标,数据) - 删除数据操作
1.删除整个列表用del list_name
2.删除指定位置下标的数据用pop(下标位置,数据),函数返回要删除的数据
3.删除某个数据用remove(‘数据’)
4.清除列表中的数据用clear(),返回空列表 - 修改数据操作
1.指定位置修改数据 list[i]=’value’
2.逆置:reverse()
3.排序(顺序和逆序):sort()
4.复制:copy() - 列表数据的遍历
for i in list:
print(i) - 列表嵌套
[[],[],[]]
嵌套列表的查询可以看成是一个二维数组,list[i][j]