python基础 day3

被刻印的时光 ゝ 提交于 2020-03-20 23:28:07

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)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!