二进制
1bit = 一个二进制位
8bit = 1byte
循环
for
while
数据类型
数字、字符串、列表、元祖、字典、集合
字符编码
文件处理
for循环:
for i in range(10) range表示从0-9中一次取数[0,1,2,3,4,5,6,7,8,9], 打印0-4的格式为range(0,5)
for循环中也有else,如果for循环正常执行完,就执行else下面的语句。可以判断循环是否顺利执行完毕
for i in range(3):
age = int(input('nianling:'))
if age == 22:
print("you are right")
break
else:
print("try")
else: #若果循环顺利执行,就执行else
print("haha")
print("")
嵌套循环:
break:跳出整个当层循环。
continue:跳出当次循环,进入下次循环。
for i in range(10):
for j in range(10):
if j < 5:
continue
print(i,j)
while循环
count = 0
while count < 100:
print('haha')
count +=1
回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。
count = 0
age = 29
while count < 3:
user_input = int(input('input you guess:')) if user_input == age:
print('right')
break
elif user_input > age:
print('bigger')
elif user_input < age:
print('smaller')
count +=1
else:
print('太笨了')
九九乘法表
first=1
while first<=9:
sec =1
while sec<=first:
print(str(sec)+"*"+str(first)+"="+str(sec * first),end="\t")
sec+=1
print()
first+=1
变量:用来记录状态。
变量值:记录状态的变化。
程序运行:处理一系列状态的变化。
数据类型
1.数字
2.字符串
3.列表
4.元组
5.字典
数字
特性:
1.只能放一个数
2.一经定义,不可更改
整形、长整形(python3种没有长整形)
1.int(10,base=2) 告知int,我输入的是2进制数。
age = 10 ----> int(10) -------> __init__
2.布尔bool:
True和False
3.浮点型float:
4.复数:
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
整形与浮点做运算,得出的结果是浮点型。
字符串
print(r'asdf\ndfd') -------r表示按书写的内容输出 在shell中\n是换行。
msg = 'hello world'
print(msg.capitalize()) 首字母大写
print(msg.center(20,'*')) 居中,首尾各空20,以*填充
print(msg.count('l',4,9))统计数量,从左边数第4索引个开始,到第九个结束。
print(msg.endswith('l')) 以...结尾 (判断)
msg1 = 'a\tb'
print(msg1.expendtabs(10)) 增加tab的长度
print(msg[10]) 打印第十个索引
注意:tab键占一个位置。
print(msg.find(d)) 找到这个元素所对应的索引。如果没找到就会返回-1,只要在范围内出现第一个符合条件的就会停止寻找。
花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
print('{0}{1}'.format('name','age')) 可以多次取数 print('{0}{1}{1}'.format('name','age'))
print('{name}'.format(name='alex')) 调用变量值
print('{}{}'.format('name','age')) 一一对应
print(msg.index('e')) 取索引,取第一个遇到的。
msg3 = 'a123'
print(msg3.isalnum) al代表字母,num代表数字,判断字符串是否由字母和数字组成。
print(msg.isalpha) 判断是否是字母组成
msg4 = "10" isdigit 判断是否是整形
print(msg4.isdigit())
msg5 = "10.2" isdecimal 判断字符串是否只包含十进制字符,是返回True,否则返回False
print(msg5.isdecimal())
msg6 = '12312332'
print(msg.isnumeric()) 判断是否是数字。
isidentifier判断是否是关键字,一个单词中是否包含关键字。
msg7 = 'while'
print(msg7.isidentifier())
msg9 = 'aaa'
print(msg9.islower())小写 isupper全都是大写
msg10 = ' '
print(msg10.isspace()) 判断是否有空格
msg11 = 'Hello'
print(msg11.istitle()) 判断是否是标题
ljust 左对齐 rjust 右对齐
msg13 = 'abc'
print(msg13.ljust(10,'*'))
lower将大写转化为小写,upper将小写转化为大写。
print(msg13.lower())
msg = ' 2323 '
print(msg.strip()) #去掉首尾空格 如果在stip的()中填写的字符串,表明要删除
print(msg.rstrip()) #去掉右边空格
print(msg.lstrip()) #去掉左边空格 msg16 = 'my name is abcd'
table = str.maketrans('abcd','alex')#做一张表(table)
print(msg16.translate(table)) #翻译(翻译的长度必须相同)
msg = 'abc'
print(msg.zfill(20)) #右对齐,不够用0
print(msg.rjust(20,'0'))
print(msg.ljust(20,'0'))
msg.replace() 替换(‘old’,‘new’)
split翻译为分裂。 split()就是将一个字符串分裂成多个字符串组成的列表。
split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割
>>> str="hello boy<[www.doiido.com]>byebye"
>>> str.split("[")[1].split("]")[0]
'www.doiido.com'
>>> str.split("[")[1].split("]")[0].split(".")
['www', 'doiido', 'com']
字符串常用功能:
1.移除空白
2.分割 -----取范围 print(msg[0:3]) 顾头不顾尾 [0:3:2]如果再加一个:表示步长
msg = 'nihao 123'
print(len(msg))
3.索引
4.切片 与分割类似
5.长度len(msg) 运算符 1.算数运算符
地板除 // 除完以后取整数 3.2 // 2.1
% 取余
2.比较运算符
3.赋值运算
4.位运算符
&与 只有对应位都是1,才是1,否则均为0
| 或 只要有一个为1则为1
^ 异或 相同为0,不同为1
>>运算的各位结果右移 3>>2 二进制三右移两位
5.逻辑运算符
and、or、not
布尔值:
非零数字自带bool值都是True
非空字符串自带bool值都是True
6.成员运算符
判断一个元素是否是字符、数字、列表、元组、字典的成员 in not in
如果两个变量所附的值一样,如果长度较小,就会暂时指向同一块地址,如果比较长,就会重新创建一个。
7.身份运算符
id查看所在内存位置。
is 是 列表
names = ['hsc','dt','lwq']
name1 = ['qq','ww','ee']
#增
names.append('ls') #新增 ,这样默认将元素添加到最后,并返回空值
#插
names.insert(2,'wt') # 2表示在2的索引之前插入
#删除的3种方法
names.remove("dt")
del names[2]
print(names.pop(3)) #删除并返回值,默认删除最后一个
#改
names[0] = 'sb'
#查
print(names[2])
print(names[0::2]) 查询的范围是0-最后,步长为2
print(names[-3:]) #取最后三个元素
names.index('dt') #取元素的下标
#first_index = names.index("wt")
#second_index = names[] names.count('wt') #统计
names.clear() #清空列表
names.extend('name1') #扩展,用于两个列表的合并
print(names)
names.reverse() 反向排列列表
print(names)
names.sort() #按照asscii码顺序排列
print(names)
names.copy() n3 = names.copy()
n4 = names
names = names.pop()
#这样的话,names修改的话,n4会改变,但是n3是copy的,所以不会改变。 print(name)
for i,ele in enumerate(name): #打印下标
print(i,ele)
enumerate用于遍历列表中的元素以及他们的下标。
设置输出颜色
格式:\033[显示方式;前景色;背景色m 说明:
前景色 背景色 颜色
---------------------------------------
30 40 黑色
31 41 红色
32 42 绿色
33 43 黃色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
显示方式 意义
-------------------------
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见 例子:
\033[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色-->
\033[0m <!--采用终端默认设置,即取消颜色设置-->
- 备注:
- \033[1;31;40m: 代表接下来输出内容为:高亮显示,前景色为红色,背景色被黑色。
- \033[0m:代表接下来的输入内容为终端默认设置,也就是取消之前的颜色设置,如果没有这个,接下来的输出,都是上面的设置。
- 例子:
password = raw_input('请输入用户密码,如果不设置,\033[5;33;40m请回车!\033[0m。默认密码为: NewPassWord2016)')
- 我的设置是,闪烁、前景色为黄色,背景色为黑色。输出的效果是:”请回车“ 这三个字一直在闪烁,且字体为黄色,背景色为黑。
针对列表元素进行拼接
name = ['id>','','and','id','< 10'] #针对字符串进行拼接
list = []
char = ''
list1 = ['and']
for i in name:
if i in list1:
list.append(char)
list.append(i)
char = '' #此处将char清空,否则将会与第一次的数据进行合并
else:
char += i
else: #利用for循环中的else将最后的结果加入的列表中
list.append(char)
print(list)