Python运算符及基本数据类型
一.安装Python
windows:
1、下载安装包 https://www.python.org/downloads/ 2、安装 默认安装路径:C:\python27 3、配置环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 如:原来的值;C:\python27,切记前面有分号linux:
无需安装,原装Python环境,默认版本为2.7。也可重新下载安装。具体安装过程参看:http://www.cnblogs.com/zhangge123/p/6579651.html中作业六的安装过程。
二.关于Python的特点
首先Python是一种解释语言,它具有跨平台,开发效率高等优点,但是同时它的运行效率会相对较低,因为它在执行时是在代码编译得到字节码(在Python中就是.pyc文件) ,虚拟机执行字节码并转换成机器码再后在处理器上执行的。常见的解释型语言有:(shell,Python,php,ruby,Java)
与之对应的编译型,如C,C+,go等,它们运行效率高,通过代码编译得到机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作,但不能跨平台,开发效率低。
三.变量
1、声明变量
#!/usr/bin/env python # -*- coding: utf-8 -*- name = "zhangge"上述代码声明了一个变量,变量名为: name,变量name的值为:"zhangge"
变量的作用:昵称,其代指内存里某个地址中保存的内容
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']2、变量的复制
例 name = "zhangge"
name1=name
在这里name与name1都是指向的同一地址,而改地址保存的内容是"zhangge"
四.关于循环与条件判断
1.while循环
死循环:while True:
结束当前层的循环: break
结束本次循环:continue
2.for 循环(也叫遍历)
常见用法:for i in range()此处range里面加入参数
for i in list/dict/str/tuple/set 将这些数据类型的对象的元素进行遍历一遍,并赋值给i
3.if条件判断
常见用法:if i in __: 此处下划线可以填写判断的对象
if i not in …:
if 条件判断:
注:以上三种均有均可加else语句,其中if还可添加elif,对于while和for的else语句,只有在循环正常结束后(break就是不正常,continue正常),else才会执行。而if是相反的。
五.运算符
1.算数运算
2.比较运算(用以if条件语句中)
3.赋值运算
4.逻辑运算
5.成员运算
六.基本数据类型
1、数字
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807关于int的常用方法:
1.创建 例如:n=123 或 n=int(123)
2.转变 例: s="123" m=int(s) 注:int只能转变数字,对于字母或者汉字会报错
3.功能:bit_length() #查看二进制占用的最小位数 (37).bit_length ==> 6
conjugate() #返回该数字的共轭复数
_abs_ #绝对值 _and_ #x&y _cmp_ #比较大小 _coerce_ #将x,y强制生成一个元组
剩余其他功能可在int类中alt+鼠标左键查看。
2、布尔值
真或假 1或0 True或False
3、字符串
字符串常用功能:移除空白strip()、 分割split()、 长度len()、 索引index()、 切片s[0:2]
1.创建 s="abc" s=str("abc")
2.转换 a=123 s=str(a) 拓展:bytes类型==> 字符串str s=str(b,encoding="utf8")
例题:将自己的名字以二进制形式表示出来
name="张三" for i in name: print(i) bytes_list=bytes(i,encoding="utf8")#utf8一个汉字占三个字节,也可转成GBK,占两个字节 for j in bytes_list: print(bytes_list,bin(j)) #结果为: 张 b'\xe5\xbc\xa0' 0b11100101 b'\xe5\xbc\xa0' 0b10111100 b'\xe5\xbc\xa0' 0b10100000 三 b'\xe4\xb8\x89' 0b11100100 b'\xe4\xb8\x89' 0b10111000 b'\xe4\xb8\x89' 0b100010013.其他功能(由于字符串是不可变的,因此它的操作均具有返回值,并且原字符串不改变)
① 返回为str类型功能
S.capitalize() #首字母大写 s.casefold() #大写变小写 s.swapcase(self) # 大写变小写,小写变大写s.center(self, width, fillchar=None)#指定字符串长度,使居中,第二个参数为填充内容(可以是"-","","*"等)s.ljust(self, width, fillchar=None) #指定长度,左对齐 s.rjust()s.zfill(self, width) #指定长度,左侧填充0s.strip(self, chars=None)#去除开头结尾的空格,换行符及tab键,If chars is given and not None, remove characters in chars insteads.upper() s.lower(self) s.strip()s.replace(self, old, new, count=None) #count指定替换次数s.title(self) #转为标题s.expandtabs(self, tabsize=8)#将tab键转换为八个空格②判断型功能(返回为bool)s.endswith(self, suffix, start=None, end=None) #suffix后缀,在此suffix也可以为字符串的元组s.startswith(self, prefix, start=None, end=None)s.isalnum(self) #判断是否为数字 s.isdecimal(self) #判断是否为十进制数s.isalpha(self) #判断是否为字母 s.digit() #判断是否为数字s.isidentifier(self) #判断变量名是否为合法 s.isnumeric() #判断是否为数字(一,壹都可识别)s.islower() s.isupper() s.istitle()#每个单词首字母是否大写 s.isspace() s.isprintable()③返回为int类型功能s.count(self, sub, start=None, end=None) #sub表示子序列,返回为ints.find(self, sub, start=None, end=None)#返回第一个sub的index,若无返回为-1s.rfind(self, sub, start=None, end=None)s.index(self, sub, start=None, end=None)#同上,但若无,报错s.rindex(self, sub, start=None, end=None)④返回为bytes,tuple,listencode(self, encoding='utf-8', errors='strict') #编码 返回值为bytess.partition(sep) -> (head, sep, tail) #分割,若sep不存在,则返回(s,"","")s.rpartition(self, sep)s.rsplit(self, sep=None, maxsplit=-1) #maxsplit指定分割次数,返回列表s.split(self, sep=None, maxsplit=-1) # sep如无,则将s转换为列表s.splitlines(self, keepends=None)#以换行符分割,返回列表⑤与其他数据类型结合使用的功能s.join(self, iterable) #连接 举例见下li=["abc","cmd","hello"] s="_".join(li) print(s) #结果: #abc_cmd_hellos.translate(self, table) 和 s.maketrans(self, *args, **kwargs)name="hello_world" In = "elordh" Out = "@#$%&*" trans_table=str.maketrans(In,Out) print(name.translate(trans_table)) #结果为: #*@##$_w$%#&s.format(self, *args, **kwargs) s.format_map(self, mapping)# map 映射注:各式数据类型占位符:str(%s),digit(%d),float(%f),%s之间加入数字,可以规定字符串长度,%.4f可规定小数点个数。%s可代替%d。默认右对齐,加-号改为左对齐。下面是关于format用法。print("nihao%-10scb"%"ai") print("nihao%10scb"%"ai") #结果为 #nihaoai cb #nihao aicbprint("hello {0},my age is {1}".format("zhangge",23)) print("hello {name},my age is {age}.".format(age=23,name="zhangge"))#建议使用,位置可互换 print("hello {name},my age is {age}.".format_map({"age":23,"name":"zhangge",}))
未完待续...