一、数据类型,运算符笔记 数字类型 数据类型包括:算术运算、比较运算、赋值运算、逻辑运算、成员运算、常用数学函数等, 数字类型: Python自带的数据类型包括: 基本类型:数字,字符串,None(空类型) ,布尔(True/False) 复合类型:列表 ,元组,字典,集合,其他数据对象 Python3 支持 int、float、complex int :整数类型 1 22 -123 110 float : 浮点数(小数) 3.14 2.22 5.67 bool : 布尔类型 True/Fasle 也可以表示成1/0 也可以被认为是数字类型 type() 函数可以用来查询变量所指的对象类型。
a = 'hello'
b = 'hello'
print(type(a))#打印数据类型str
print(type(b))#打印数据类型str
c = ''
print(type(c))#打印数据类型str
d = 123
print(type(d))#打印数据类型int
print(type(str(d)))#改变数据类型int为str
运算符 《1》算术运算符: 加法+、减法-、 乘法*、除法/ % 取模 - 返回除法的余数 21 % 10 输出结果 1 2幂 返回x的y次幂 1021 为10的21次方 // 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 《2》比较运算符: 等于 、不等于、大于 、小于 、大于等于 、小于等于 《3》赋值运算符: = c = a + b 将 a + b 的运算结果赋值为 c += 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 《4》位运算符 《5》逻辑运算符 and 布尔"与" a and b 同时为真值为真 or 布尔"或" a and b 一个为真,值为真 not 布尔"非" not a 真变假,假变真 判断语句有以下三个关键字: if (如果) else (其他) elif (其他如果),可以嵌套使用 《6》成员运算符 in 如果在指定的序列中找到值返回 True,否则返回 False。 not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 《7》身份运算符 身份运算符用于比较两个对象的存储单元(地址)是否相同。 is 判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False 两者区别: is 用于判断是否为同一个对象 == 用于判断变量的值是否相等 is not 判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
a = 'hello'
b = 'hello'
print(type(a))#打印数据类型str
print(type(b))#打印数据类型str
if a==b:
print(123)#结果为123
if a is b:
print(123)#结果为123
id() :查看数据内存地址编号的函数. 数字类型转换: 将数据类型作为函数名即可。 int(x) 将x转换为一个整数。 float(x) 将x转换到一个浮点数。 常用数学函数: abs(x…) 返回数字的绝对值,如abs(-10) 返回 10 max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。 min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。 round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 pow(x, y) 返回x**y 运算后的值。需要从math库引入。 sqrt(x) 返回数字x的平方根,需要从math库引入。 打印九九乘法表:
for i in range(1,10):
n = '\n'
#print(i)
for j in range(1,i+1):
n=n+str(i)+'*'+str(j)+'='+str(i*j)+'\t'
#print(n)
print(n)
二、序列循环笔记 序列与循环 定义:序列是被排成一列的数据,也就是说是有序的数据集合. python中有三种常用的序列: 1、列表 list [1,2,3,4] 2、元组 tuple (1,2,3,4) 3、字符串 string “abcd” 序列的通用操作 切片([开始:结束:步长]) 序列的加法(+) 序列的乘法(*) 成员资格判断(in) 求最大值 (max) 求最小值 (min) 求序列长度 (len) 求和(sum) 注-字符串不能求和 序列的遍历 foo = ‘abc’ for i in foo: print(i) #打印的结果为a b c for i,v in enumerate(foo): i为取出的元素的索引,v为每次取出的值 print(i,v) #打印的结果为0 a 1 b 2 c range函数 range(开始,结束,步长) 生成在设定范围内的整数数据对象 for i in range(10): print(i) #打印的结果为0 1 2 3 4 5 6 7 8 9
strs = "abcdefg5"
print(strs[1:4])#结果为:bcd
print(strs[-6:-8:-1])#结果为:cb
print('很'+'优'+'秀')#结果为:很优秀
print(很优秀*3)#结果为:很优秀很优秀很优秀
print('a'
a = 'hello world'
b = 'hellos'
if b not in a:
print(b)#结果为:hellos
a = 'aaabbb'
b = 'aaatbbb'
if len(a)
for i in range(0,len(a)):
print(i)
if a[i]!=b[i]:
print(b[i])
a = 'aaabbb'
b = 'aaatbbb'
num = 0
if len(a)
for i in range(0,len(a)):
#print(i)
if a[i]!=b[i]:
print(b[i])
num=1
break
if num==0:
print(b[-1])
列表 列表(list)可以按顺序存放数据的容器.数据可以是任意类型 列表是使用方括号括把用逗号分隔的不同的数据项括起来的数据 列表的创建 list1 = [‘宫爆鸡丁’, ‘小炒肉’,20] 嵌套列表 menu=[ [“羊肉泡馍”,20], [“宫保鸡丁”,10] [“鱼香肉丝”,10] ] 元素取值: 格式:列表名[索引] menu=[“羊肉泡馍”,“宫保鸡丁”,“鱼香肉丝”] print(menu[0]) print(menu[1]) print(menu[2]) 元素修改: menu=[“羊肉泡馍”, “宫保鸡丁”, “鱼香肉丝”] menu[0] = ‘红烧肉’ print(menu) 列表的常用方法 1、列表.append(数据) # 追加数据 2、列表名.extend(lis) # 一个列表尾部追加另一个列表(lis3 = lis1 + lis2 # 将lis1和lis2合并生成新的lis3) extend与+的区别: entend 将list2中的元素追加到了list1中,list1发生变化; +号 产生了一个新的列表,list1和list2都没有变化。 3、list.insert(index,data) # 在范围内任意位置添加 4、x=list.pop(索引值) # pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。(X为移除的元素) 5、列表名.remove(元素名) # 删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常 6、列表名.clear() # 清空列表,最后得到一个空列表 7、del 列表名 # 删除整个列表 8、del 列表名[索引] # 删除列表中的某个元素 9、列表名.sort() # 列表对象的sort方法进行原地排序,会改变原列表 newlist = sorted(oldlist)内置函数sorted方法排序,并返回修改后的新列表。 10、列表名.reverse() # 元素原地反转 11、列表名.count() #统计元素出现次数 列表推导式 [ 元素 for 元素 in 序列 if 条件 ] is = [ i for i in range(10) if i %2 == 0 ] # 求10以内的偶数 #可以认为是下面代码的简写形式 lis1 = [] for i in range(10): if i % 2 ==0: lis1.append(i) while循环 While 条件: #当条件成立时循环 循环体 while True: print(“这是一个死循环”) break :退出并结束循环 continue :跳出本次循环,从下一次循环继续执行 元组 元组和列表非常相似,也是有序的线性表,本质上最大的区别就是内容不可变。 如果元组中只有一个元素,要在这个元素后面加一个逗号,否则不认为是元组。 menu = (‘红烧鱼’) #错 menu = (‘红烧鱼’,) #对 生成器推导式 generator 生成器 工作方式:每次处理一个对象,优点:可以节省大量的内存。 阶段练习: 1、求出1-1000能被3整除的数
for i in range(1,1001):
if i%3==0
print(i)
2、找出1-1000所有的水仙数
for i in range(100,999):
i = str(i)
if int(i[0])**3+int(i[1])**3+int(i[2])**3==int(i):
print(i)
for i in range(100,999):
a = i%10
b = i%100//10
c = i//100
if a**3+b**3+c**3==i:
print(i)
3、找出字符串qsfsafasgsagsagsa中出现最多的字母
max_word = 'a'
max_num = 0
for j in lists:
n = 0
for i in a:
if i==j:
n=n+1
if n>max_num:
max_word = j
max_num = n
print(max_word,max_num)
4、点名系统,要求实现输入数字自动出对应数量的名字,名字不重复,注意非空的验证
username1 = 'wang1'
username1 = 'wang2'
username1 = 'wang3'
username1 = 'wang4'
username1 = 'wang5'
username1 = 'wang6'
username1 = 'wang7'
strs=''
n = 0
while Ture:
r_num = random.randrange(1,8)
r_name = eval('username'+str(r_num))
if r_name in strs:
pass
else:
print(r_name)
strs+=rname
n=n+1
if n==5:
break
#print(strs)