第二课-运算符与基本数据类型
复习:
pypy是所有的python编辑器中最快的,原因是,它把机器码拿给编译器,直接把机器码直接拿给底层操作。
环境变量配置过程:
计算机-属性-高级系统设置-环境变量-Path,在后面加分号,把新的路径加进来。再想加别的,依旧可以使用这种放法,加分号,把新的路径加进来。分号的作用就是区分不同的路径,进行分割。
一般的情况下我们使用文件的形式来写代码,在linux下要加上头文件#/usr/bin/...
在Python2中加入# -*- coding:utf-8 -*-必须加在头部,中间不能再加其他的东西,否则就会出问题,失效。
一个字节是8位。ASSCII就是8字节,unicode是16位。utf8是尽可能少的位数。
unicode可以转换成utf8,也可以转换成GBK(汉字编码字符集)。但是utf8无法直接转换成为utf8。对于python3中所有的字节输入电脑的时候都自动变成unicode。
在python中字符串前写一个u就表示就以unicode的形式编码。
补充:
- input()函数输入的数据永远只是字符串,即使存在这样的语句 m = input(‘10’)
m = ‘10’,是个字符串,不是数字。下面的内容将介绍,将字符串转换为数字的办法。
- python中是严格按照缩进进行的,不缩进就会出现错误。
- while循环,同样遵循else的执行方式,例如:
count = 0
while count < 10:
print(count)
count = count +1
else:
print(...)
这里面的else只会执行一次
- continue和break
while count < 10:
count = count +1
if count == 7:
continue
print(count)
这个代码运行到continue的时候,代码就会再一次返回到while,不会运行下面的程序。但是若是换成break的话,会直接退出整个循环,
程序:
用户登录(三次机会重试)
count = 0
while count < 3:
user = input(‘>>’)
pwd = input(‘>>>’)
if user == ‘alex’ and pwd == ‘123’:
print(‘Welcome log in’)
break
else:
print(‘user or pwd is wrong!’)
count = count + 1
print(‘...’)
新内容:
python开发TDE(工具):pycharm(最好)、eclipse
#专业版
#不要汉化
这里面我们可以在网上搜索最新的版本,并且能够在博客上找到破解的教程,但是破解起来还是有些麻烦,本人破解了将近1小时。
将软件安装结束后,就是软件的使用,这里只记录一个快速调节字体的方法:file-settings搜索mouse,选中Change font size with Ctrl+Mouse Wheel。
右键处理可以显示行号。
一. 运算操作符
- 基本
(1)+ - * /加减乘除
(2)** 幂
(3) % 取余数
(4)// 取整数
(5)in 表示是否在某某的里面,例如:
name = "你好"
if "你" in name:
print('OK')
else:
print('Error')
运行结果:OK
name = "你好吗"
if "你吗" in name:
print('OK')
else:
print('Error')
运行结果:Error
这里值得注意,看一个字符是否在字符串里面,要连续的,或者说子序列。
(5)not in 判断某个东西是否在某个东西里面
name = "你好吗"
if "你" not in name:
print('Error')
else:
print('OK')
运行结果:Error
- 布尔值
Ture真,False假
对于if后面的内容,我们就可以把它看成要不是TURE,要不就是个FALSE。而且其他的很多语句也是这样的。in和not in的结果也是bool值,我们可以验证一下:
name = "你好吗"
v = "你" in name
print(v)
运行结果:True
v = 1==2
print(v)
运行结果:False
== > < <= >= != <>(不等于)运行结果都是bool值
逻辑操作,and or not的结果也是bool值
- 操作符的先后顺序
user = "good"
qw = "123"
v = user == 'good'and qw =="123" or 1==1and qw == "4556"
print(v)
运行结果:True
我们正常写代码肯定会写括号,但是这里我们要明白是怎么做的。这里实际没有什么优先级别,就是从前到后依次计算,有and要往后看对错,or的话前面对了对不用看后面的了。
- 赋值运算符
c+=a c=c+a
c-=a c=c-a
c*=a c=c*a
c/=a c=c/a
c%=a c=c%a
c**=a c=c**a
c//=a c=c//a
算数运算符,赋值运算符 结果是值
比较运算符,逻辑运算符,成员运算符 结果是布尔值
二. 基本数据类型
- 分类
数字
a = 111,输入int,通过Ctrl进去就能找到其中的函数
字符串
q = “123”,输入str,通过Ctrl进去就能找到其中的函数
列表
输入list,通过Ctrl进去就能找到其中的函数
元祖
输入tuple,通过Ctrl进去就能找到其中的函数
字典
输入dict,通过Ctrl进去就能找到其中的函数
布尔值
输入bool,通过Ctrl进去就能找到其中的函数
以上是python所有的基本数据类型,每种数据类型都有它们特有的一类函数。
在python3里面无论数字有多大都是int(整型)类型,但是在python2里面当数字超过了一定的大小,就变成了long(长整型)
- 重点函数
ü 数字
l int()
(1)将数据类型强制转换数字,但是只能转化数字,不能转换字母
a = "123"
print(type(a))
b = int(a)
print(type(b))
print(b)
运行结果:
<class 'str'>
123
<class 'int'>
123
(2)与base的一起使用
num = "a"
v = int(num,base=16)
print(v)
运行结果:10,base=16,表示按照16进制的方式进行转换。
l bit_length()
表示按2进制的方式表示数字最少的长度
age = 10
r = age.bit_length()
print(r)
运行结果:4
ü 字符串
l capitalize() 首字母大写
a = "asd"
v = a.capitalize()
print(v)
l casefold() lower() 所有的字母变小写,将元素放在中间,args表示多少个元素
center(self, *args, **kwargs)
a = "asd"
v = a.center(20,"#")
print(v)
运行结果:########asd#########
l count(self, sub, start=None, end=None) 计数,可以设计起始和末尾的位置
test1 = "rtrhrjkrlfgrhjrkl"
v = test1.count('r',5,10)
print(v)
运行结果:1
l endswith() startswith() 以某些字母结尾和开始
test1 = "rtrhrjkrlfgrhjrkl"
v = test1.endswith('rkl')
print(v)
运行结果:True
l find(self, sub, start=None, end=None)
test1 = "rtrhrjkrlfgrhjrkl"
v = test1.find('r',2,4)
print(v)
运行结果:2,没找到显示-1
l format 格式化,将一个字符串的占位符替换为指定的值
test = 'i am {name},age {a}'
print(test)
v = test.format(name='alex',a=19)
print(v)
运行结果:
i am {name},age {a}
i am alex,age 19
test = 'i am {0},age {1}'
print(test)
v = test.format('alex',19)
print(v)
运行结果:
i am {name},age {a}
i am alex,age 19
表示即使没有名字也没关系,就会从前到后依次的替换。
test = 'i am {name},age {a}'
print(test)
v1 = test.format(name='alex',a=19)
print(v1)
v2 = test.format_map({"name":'alex',"a":19})
print(v2)
运行结果:这是字典的表示方法
i am {name},age {a}
i am alex,age 19
i am alex,age 19
l index(self, sub, start=None, end=None)
和find的功能类似,若是找不到会报错,find找不到返回-1。一般我们都是使用find
l isalnum(self, *args, **kwargs) 判断是否只包含字符串和字母
test = 'fghjkltghjk56789'
v = test.isalnum()
print(v)
运行结果:
True