Day3笔记
1.基础数据类型
整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set).
- int:数字:主要用于运算。1 ,2,3...
- bool:判断真假:True, False.
- str:简单少量的储存数据,并进行相应的操作。name = 'alex',
- tuple:只读,不能更改。(1,'alex')
- list:大量有序数据,[1,'ses',True,[1,2,3],{'name':'jinxin'}]
- dict:大量数据,且是关联性比较强的数据 {'name':'jinxin','age':18,'name_list':['张三','李四']}
- set:交集、并集、差集
int 主要用于运算
- 二进制转化为十进制
# 0001 1010转化为十进制 b = 1 * 2**4 + 1 * 2**3 + 0 * 2**2 + 1 * 2**1 + 0 * 2**0 print(b)
- int
# int # bit_length 有效的二进制的位数 i = 4 print(i.bit_length())
数据类型之间的转换
# int <————> str #字符串必须是整数时才能转换成int i = 4 print(str(i)) i = '4' print(int(i)) # str <————> bool # 非空即True s = "" print(bool(s)) s = "aloha" print(bool(s))
例如:
s1 = input("请输入内容:") if s1: # 这里的s1如果不为空,则为True print("输入的内容是:%s"% s1) else: print("没有输入任何内容")
字符串str的基本操作
- 索引
s1 = "my name is 杨森" # 字符串从左至右有顺序,下标,索引 # 对字符串进行索引、切片出来的数据都是字符串类型 s2 = s1[5] print(s2,type(s2)) # 从左至右下标为0 1 2 3 …… # 从右至左下标为-1 -2 -3 …… s3 = s1[-1] print(s3)
- 切片
s4 = s1[3:7] # 切片结果不包括下标为7的字符 print(s4)
s5 = s1[3:] # 从第3位取到最后 print(s5)
s6 = s1[:5] # 从第0位取到第4位 print(s6)
s7 = s1[1:13:2] # :2代表步长 print(s7)
s8 = s1[-1:-9:-1] # :-1 是倒叙取 print(s8)
s9 = s1[:] # 全部取出来 print(s9)
s10 = s1[::-1] # 倒叙全取 print(s10)
upper() 和lower()
应用场景:验证码不区分大小写
s = "YangSen" s1 = s.upper() print(s1) s2 = s1.lower() print(s2)
应用:用户登录系统,验证码不区分大小写
username = input('请输入用户名:') password = input('请输入密码:') code = 'FuCk' enter_code = input('请输入验证码(不区分大小写):') if code.lower() == enter_code.lower(): # 将code 和enter_code都转换成小写 if username == 'jason' and password == '123': print('登录成功') else: print('账号或密码错误') else: print('error code')
startswith()
判断一个字符串是不是以……为开头
s = 'jason' print(s.startswith('j')) print(s.startswith('jas')) print(s.startswith('jason'))
- replace()
msg = '我叫Jason,我今年24,我是个男生。' msg1 = msg.replace('我', 'ta') # 默认全部替换 msg2 = msg.replace('我', 'ta', 2) # 从左往右替换2个 print(msg1) print(msg2)
strip()
只能删除开头或者结尾的字符(默认为空格或换行符)
# strip msg = '我是jason,我24岁,我是个男生我' msg1 = msg.strip('我') print(msg) print(msg1)
split() (重要)
按照指定分隔符分隔一个字符串,并返回一个列表(默认按照空格分隔)
msg = 'my name is jason' msg1 = msg.split() msg2 = msg.split('m') msg3 = msg.split(' ', 2) # 按照空格分割,只分出前两个 print(msg1) print(msg2) print(msg3)
- join()
s = 'jason' l1 = ['我', '好', '帅'] s1 = '+'.join(s) s2 = '+'.join(l1) # 如果join()的是列表,列表中只能是字符串,不可以有数字 print(s1) print(s2)
- count()
s = 'sdlakjfiwejlknvinlijljlksdahjkbvlskdjafklh' print(s.count('d'))
format()
格式化输出
# 方法一 format()中必须按照顺序一一对应 msg = '我叫{},今年{},性别{}'.format('jason', '24', '男') print(msg) # 方法二 重复字符串不需要多次写 msg = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('jason', '24', '男') print(msg) # 方法三 format()中顺序可以随意 msg = '我叫{name},今年{age},性别{sex}'.format(age='24', sex='男', name='jason') print(msg)
- is 系列
s = 'jason123' print(s.isalnum()) # 判断字符串中是由字母或数字组成 print(s.isalpha()) # 判断字符串中只由字母组成 print(s.isdecimal()) # 判断字符串中只由十进制组成
# 应用: number = input('请输入您的金额:') if number.isdecimal(): print('您的金额为:%s' % int(number)) else: print('输入有误')
2.for循环
- 引入
msg = '世界上最帅的男人:杨森' # 使用while循环,把字符串里的每一个字符挨个打印出来 num = len(msg) # 获取可迭代对象的总个数 index = 0 while index < num: print(msg[index]) index += 1
- for 循环基本格式
for 变量 in iterable: pass
- 示例
msg = '世界上最帅的男人:杨森' for i in msg: print(i)
来源:https://www.cnblogs.com/west-yang/p/12535577.html