day --- 3( int str bool for 循环 str)

一. int

1.用法

int 主要用于计算 = - * /
不同进制之间的转换。10进制,2进制
‘’’
二进制转换为10进制

0001 1010 —> ?

‘’’

b = 0 * 2 ** 7+ 0 * 2 ** 6+ 0 * 2 ** 5 + 1 * 2 ** 4 + 1* 2**3 + 0 * 2 ** 2 + 1 * 2 **1 + 0 * 2 ** 0
print(b)  #26

‘’’
42 —> 0010 1010
‘’’

2. bit_lenth # 有效二进制的长度

i = 4
print(i.bit_length()) #3


i = 5
print(i.bit_length())#3

i = 10
print(i.bit_length())#4


i = 45
print(i.bit_length())#6

二.bool str int

1.bool <—> int

‘’’
True 1 False 0
非零即True 0 是False

‘’’

2.str <–> int

‘’‘s1 = 10 int(s1):必须是数字组成
i = 100 str(i):
‘’’

3.str <–> bool

非空即True

s1 = ' ' #空格(特殊字符)
print(bool(s1))

4.bool --> str 无意义

print(str(True)) #输出仅为字符串True ,并不是bool值True

三.for 循环

1. for 循环

s1 = ‘老男孩教育最好的讲师:太白’
‘’’
老 s1[0]
男 s1[1]
孩 s1[2]
教 s1[3]
教 s1[4]
育 s1[5]
最 s1[6]

‘’’

s1 = '老男孩edu'
print('老' in s1)# True
print('老男' in s1)# True
print('老ed' in s1) # False  # 当做了整体
print('老ed' not in s1) # True

2.for 循环(有限循环)

iterable 可迭代对象 (字符串也是)
‘’’
for 变量 in iterable # 格式

‘’’

s1 = '老男孩教育最好的讲师:太白'
for i in s1:
    print(i)

在这里插入图片描述

3.len() # 内置函数 获取可迭代对象的元素总个数

s1 = '老男孩教育最好的讲师:太白'
index = 0
while index < 13:
    print(s1[index])
    index += 1

s1 = '老男孩教育最好的讲师:太白'
index = 0
while index < len(s1):
    print(s1[index])
    index += 1

上面两行代码的结果都如下
在这里插入图片描述

4.break # (循环遇到break直接退出循环) continue # (退出本次循环开始下次循环)

for else : whilr else (两者用法一样) [(一对组合) while(for)如果循环正常结束else就会执行如果被break结束则不执行else]

s1 = '老男孩教育最好的讲师:太白'
for i in s1:
    print(i)
    if i == '好':
        break

在这里插入图片描述

四.str

1.索引

对字符串进行的索引,切片出来的数据都是字符串类型。
1.按照索引取值
2.从左至右有顺序,有下标,即索引。
s1 = 'python全栈22期'
s2 = s1[0]
print(s2,type(s2))

在这里插入图片描述

s1 = 'python全栈22期'
s3 = s1[2]
print(s3)

在这里插入图片描述

s1 = 'python全栈22期'
s4 = s1[-1]
print(s4)

在这里插入图片描述

2.切片

		**按照切片取值。**
		**顾头不顾尾**
s1 = 'python全栈22期'
s5 =s1[0:6]  # s5 = s1[:6]#0可省去不写
print(s5)

在这里插入图片描述

s1 = 'python全栈22期'
s6 = s1[6:-1]
s7= s1[6:]
s8 = s1[6:-2]
print(s6)
print(s7)
print(s8)

在这里插入图片描述

(1).切片步长

s1 = 'python全栈22期'
s7 = s1[:5:2] #2为步长
print(s7)#pto

在这里插入图片描述

3.倒叙

s1 = 'python全栈22期'
print(s1[:])  # 全取
s9 =  s1[-1:-5:-1]  # s =  s1[-1:-5]  不显示了但不会报错
print(s9)

在这里插入图片描述

索引总结

** 按索引取 : s1[index]#索引
按照切片取 : s1[start_index:end_index + 1] #首索引 : 尾索引
按照切片取步长 : s1[start_index:end_index + 1:2] ##首索引 : 尾索引 : 步长
反向按照切片取步长 : s1[start_index:end_index后延一位:2] ##首索引 : 尾索引 : 步长**

s = "123a4b5c"
s1 = s[:3]
print(s1)

s = "123a4b5c"
s2 = s[3:6]
print(s2)

s = "123a4b5c"
s3 = s[:7:2]
print(s3)

s = "123a4b5c"
s4 = s[1:7:2]
print(s4)

s = "123a4b5c"
s5 = s[-1]
print(s5)

s = "123a4b5c"
s6 = s[-3:-8:-2]  #ba2
print(s6)

在这里插入图片描述

五.str的常用操作

1.upper lower 大写 小写

产生一个新字符不会对原字符产生影响

s = 'taiBai中国'
s1 = s.upper()
s2 = s.lower()
print(s)
print(s1,type())
print(s2,type())

在这里插入图片描述

应用:

username = input('用户名')
password = input('密码')
code = 'QweA'
print(code)
your_code = input('请输入验证码:不区分大小写')
if your_code.upper() == code.upper():
    if username == '朱昊恒' and password == 'q1w2e3':
        print('登陆成功')
    else:
        print('用户名或密码错误')
else:
    print('验证码错误'

2.stratwith endwith 以什么开始 以什么结束 返回的是bool值

s = 'taibai'
print(s.startswith('t'),s.endswith('i'))
print(s.startswith('ta'),s.endswith('i'))
print(s.startswith('taibai'),s.endswith('i'))

在这里插入图片描述

了解

s = 'taibais'
print(s.startswith('b',3,6))  #bai 是否以b开头 在[3:6]

在这里插入图片描述

3.替换 replace

msg = 'alex很nb,alex是老男孩学院的创使人之,一alex很帅'
msg1 = msg.replace('alex','太白',2) #默认全部替换
print(msg1)
print(msg)

在这里插入图片描述

在这里插入图片描述

4.strip: 默认去除字符串两边的 空白, \t(水平制表符) \n (换行符)

s4 = '  \n太白\t'
print(s4)
s5 = s4.strip()
print(s5)	

在这里插入图片描述

了解

还可取出指定字符

s4 = 'rre太白qsd'
s6 = s4.strip('reqsd')#头尾两边同时开始去除
print(s6)

s4 = 'rre太r白qsd'
s6 = s4.strip('reqsd')
print(s6) #太r白 #中间无法去掉

在这里插入图片描述

5.split ************重点 (切割)

默认按照空格分开,返回一个列表
指定分隔符
将str -->list

s7 = '太白 女神 吴迪'
l = s7.split()
print(l)  #['太白', '女神', '吴迪']

s7 = '太白 女神 吴迪'
l = s7.split(':')  #指定分隔符
print(l)

在这里插入图片描述

了解

s6 = ':barry:nvshen:wu'
print(s6.split(':')) 

在这里插入图片描述

6.join 连接 还可以将字符串转化为列表 **

s1 = 'alex'
s2 = '+'.join(s1)   #join(self,__iterable) #iterable 可迭代的 这个数据有多个元素组成
print(s2)#a+l+e+x

在这里插入图片描述

前提列表里的元素必须都是str类型

l1 = ['太白','女神','吴超']
s3 = ':'.join(l1)
print(s3,type(s3))

在这里插入图片描述

l1 = ['太白','女神','3']
s3 = ':'.join(l1)
print(s3,type(s3))

l1 = ['太白','女神',3]
s3 = ':'.join(l1)
print(s3,type(s3))

在这里插入图片描述

7.count 计数 数出某个元素出现的次数

s8 = 'sdsfgcbchjxvxvdadakjsdskjdbckjvhgajhsd'
print(s8.count('a'))

在这里插入图片描述

8.format: 格式化输出

第一种

msg = '我叫{}今年{}性别{}'.format('大壮','25','男')
print(msg)

在这里插入图片描述

第二种

msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮','25','男')
print(msg)

在这里插入图片描述

第三种

a = 100
msg = '我叫{name}今年{age}性别{sex}'.format(age = a,name = '大壮',sex = '男')
print(msg)

在这里插入图片描述

9.is 系列

1.isalnum() #字符串有数字或字母组成

2.isalpha() # 字符串只由字母组成

3.isdecimal() #字符串只由十进制组成

name = 'taibai12'
print(name.isalnum()) #字符串有数字或字母组成
print(name.isalpha()) # 字符串只由字母组成
print(name.isdecimal()) #字符串只由十进制组成

在这里插入图片描述

s1 = input('请输入您的金额')
if s1.isdecimal():
    print(int(s1))
else:
    print('输入有误')

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#第二次作业 #26 #(1) lst=[1,2,3,4,5] square=map(lambda x:x*x,lst) print(list(square)) #(2) even=filter(lambda x:x%2==0,lst) print(list(even)) #27 #(1) file1=open("E:/大一/python与程序设计/file1.txt","r") content1=file1.read() lst1=content1.split() num=list(map(int,lst1)) allnum=sum(num) print(allnum) file1.close() #(2) file1=open("E:/大一/python与程序设计/file1.txt","r") content=[] for i in range(1,4): l=file1.readline() num= list(map(int, l.split())) num.sort() strs=" ".join(list(map(str,num))) strs2=strs+"\n" content.append(strs2) file2=open("E:/大一/python与程序设计/file2.txt","w") file2.writelines(content) file2.close() file1.close() #(3) file1=open("E:/大一/python与程序设计/file1.txt","r") content=file1.readlines() print(len(content)) #28 from datetime import datetime as dt file3=open("E:/大一/python与程序设计/file3.txt",'r',encoding='utf-8') line1=file3.readline() content=[] for i in range(1,4): l=file3.readline().split() content.append(l) col1=[content[0][0],content[1][0],content[2][0]] col2=[content[0][1],content[1][1],content[2][1]] col3=[content[0][2],content[1][2],content[2][2]] col4=[content[0][3],content[1][3],content[2][3]] day_formate="%H:%M:%S" Time=[] Code=[] Price=[] Volume=[] for t in col1: Time.append(dt.strptime(t,day_formate)) for c in col2: Code.append(str(c)) for p in col3: Price.append(float(p)) for v in col4: Volume.append(int(v)) file3.close() #29 #(1) mean=lambda x,y,z:(x+y+z)/3 #(2) def mean(*num): if bool(num)==0: return None else: return sum(num)/len(num) #30 def fibo(n): if n==1 or n==2: return 1 else: return fibo(n-1)+fibo(n-2) #31 from math import sqrt class Point(): def __init__(self,x,y): self.x=x self.y=y class Line(Point): def __init__(self,p1,p2): self.p1=p1 self.p2=p2 def lenth(self): lenth=sqrt((self.p1.x-self.p2.x)**2+(self.p1.y-self.p2.y)**2) return lenth def slope(self): if self.p1.x==self.p2.x: return None else: k=(self.p1.y-self.p2.y)/(self.p1.x-self.p2.x) return k def __repr__(self): return ((self.p1),(self.p2)) p1=Point(2,3) p2=Point(5,9) line=Line(p1,p2) l_line=line.lenth() k_line=line.slope() print(f"起点(2,3)到止点(5,9)的线段长度为{l_line},斜率为{k_line}") #32 class Point(): #(1) def __init__(self,x=0,y=0): self.x=x self.y=y #(2) def trans(self): return (self.y,self.x) #(3) def show(self): return print(f"该点坐标为({self.x},{self.y})") #(4) p1=Point(1,2) p1.trans() p1.show() p2=Point(3,5) p2.trans() p2.show()
06-10
对于你的代码,我进行了一些修改和注释,以便更好地理解。请查看以下代码: # 26 # (1) 计算列表中每个元素的平方 lst = [1, 2, 3, 4, 5] square = map(lambda x: x * x, lst) print(list(square)) # (2) 过滤出列表中的偶数 even = filter(lambda x: x % 2 == 0, lst) print(list(even)) # 27 # (1) 读取文件中的数字,并计算它们的总和 file1 = open("E:/大一/python与程序设计/file1.txt", "r") content1 = file1.read() lst1 = content1.split() num = list(map(int, lst1)) allnum = sum(num) print(allnum) file1.close() # (2) 读取文件中的数字,并将每行数字进行排序后写入新文件 file1 = open("E:/大一/python与程序设计/file1.txt", "r") content = [] for i in range(1, 4): l = file1.readline() num = list(map(int, l.split())) num.sort() strs = " ".join(list(map(str, num))) strs2 = strs + "\n" content.append(strs2) file2 = open("E:/大一/python与程序设计/file2.txt", "w") file2.writelines(content) file2.close() file1.close() # (3) 读取文件中的行数 file1 = open("E:/大一/python与程序设计/file1.txt", "r") content = file1.readlines() print(len(content)) # 28 # 从文件中读取数据,并按照列进行解析 from datetime import datetime as dt file3 = open("E:/大一/python与程序设计/file3.txt", 'r', encoding='utf-8') line1 = file3.readline() content = [] for i in range(1, 4): l = file3.readline().split() content.append(l) # 将字符串时间转换为datetime类型 col1 = [content[0][0], content[1][0], content[2][0]] day_formate = "%H:%M:%S" Time = [dt.strptime(t, day_formate) for t in col1] # 将字符串转换为其他类型 col2 = [content[0][1], content[1][1], content[2][1]] Code = [str(c) for c in col2] col3 = [content[0][2], content[1][2], content[2][2]] Price = [float(p) for p in col3] col4 = [content[0][3], content[1][3], content[2][3]] Volume = [int(v) for v in col4] file3.close() # 29 # (1) 求三个数的平均值 mean = lambda x, y, z: (x + y + z) / 3 # (2) 求任意数量的数的平均值 def mean(*num): if bool(num) == 0: return None else: return sum(num) / len(num) # 30 # 计算斐波那契数列的第n项 def fibo(n): if n == 1 or n == 2: return 1 else: return fibo(n - 1) + fibo(n - 2) # 31 # 定义Point和Line类,并计算线段长度和斜率 from math import sqrt class Point(): def __init__(self, x, y): self.x = x self.y = y class Line(Point): def __init__(self, p1, p2): self.p1 = p1 self.p2 = p2 def length(self): length = sqrt((self.p1.x - self.p2.x) ** 2 + (self.p1.y - self.p2.y) ** 2) return length def slope(self): if self.p1.x == self.p2.x: return None else: k = (self.p1.y - self.p2.y) / (self.p1.x - self.p2.x) return k def __repr__(self): return ((self.p1), (self.p2)) p1 = Point(2, 3) p2 = Point(5, 9) line = Line(p1, p2) l_length = line.length() k_line = line.slope() print(f"起点(2,3)到止点(5,9)的线段长度为{l_length},斜率为{k_line}") # 32 # (1) 定义一个Point类,包含x和y坐标 class Point(): def __init__(self, x=0, y=0): self.x = x self.y = y # (2) 定义一个trans()函数,将坐标轴进行转换 def trans(self): return (self.y, self.x) # (3) 定义一个show()函数,打印出点的坐标 def show(self): return print(f"该点坐标为({self.x},{self.y})") p1 = Point(1, 2) p1.trans() p1.show() p2 = Point(3, 5) p2.trans() p2.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值