一、Day01

)python2x和python3x的区别

  python2x:重复代码多,源码不标准,混乱

  python3x:统一,去除重复代码

  python2x:默认编码是ASCII码(解决中文乱码问题,在首行添加 #_*_ encoding:utf-8 _*_# )

  python3x:默认编码是utf-8

)python的环境

  编译形:一次性把所有代码转换为二进制文件

      优点:运行速度快

      缺点:不能跨平台,开发效率地

      C、C++等

  解释形:当程序执行时,一行一行解释

      优点:可以跨平台,开发效率高

      缺点:运行速度慢等

      python、php等

 

)变量:就是将一些计算的中间结果暂时存到内存中,以便后续代码调用。

  必须,字母,数字,下划线任意组合开头,不能是中文,不能数字开头,不能是python中的关键字。

)常量:一直不变的量,eg。π

 

)注释:

  单行注释:#

# 单行注释

  

  多行注释:''' 被注释的内容 '''

'''
这是第一行
这是第二行
这是第三行
这是第四行
'''

 

)用户交互 :input

  等待输入;

  将你输入的信息赋值给前面的变量

name = input('请输入你的名字:')

  

  input出来的数据类型全都是str

)基础数据类型初始 

  数字:int 12,4,55

  运算:+ - * / %(取余)

  type(),输出数据类型

  int(str):把字符串转化成数字类型,str必须为数字组成

  str(int):把数字转化成字符串

  字符串:python中用引号扩起来的都是字符串

  可相加:字符串的拼接

  可想乘:str * int

  bool:布尔值,True or False

)if语句

  if 条件:

    结果

 

if True:
    print('天天开心!')

 )while循环

  while 条件:

    循环体

    无线循环

  终止循环:1、破坏条件。2、berak

# 无限循环
while true:
    print('111')

# 破坏条件
i = 0
whle i<4:
    print('666')
    i += 1

# break
while true:
    print('break')
    break

 

------------------------------------------------------------------------------------------------------------------------

二、Day02

)格式化输出:%

# 格式化输出   %
name = input('请输入姓名:')
age = input('请输入年龄:')
height = input('请输入身高:')
msg = '我叫%s,今年%s,身高%s' % (name, age, height)
print(msg)

eg.1. 按格式输出:

----------info of alex-----------

Name:     alex

age:     23

job:    student

hobbie:    reading

----------end  of alex-----------

msg = 
'''----------info of alex-----------

Name:     alex

age:     23

job:    student

hobbie:    reading

----------end  of alex-----------
'''
print(msg)

  输出百分号(%)

  msg = '学习进度为5%%'

msg = '学习进度为5%%'
print(msg)

)占位符 %s,%d。字符串str,数字digit

name = input("请输入姓名:")
age = input("请输入年龄:")
job = input('请输入工作:')
hobbie = input('请输入爱好:')
msg = '''
------------info of %s----------
name: %s
age: %d
job: %s
hobbie: %s
-------------end of alex ---------
''' % (name, name, int(age), job, hobbie)
print(msg)

 )while else

概念:固定搭配,当while循环没有被 break 打断时,执行else语句;当while循环被 break 打断,不执行else语句

eg. 

count = 0
while count <= 5:
    count +=1
    if count ==3:break
    print('Loop',count)
else:
    print('循环执行完了')
print('-----out of while loop-----')
结果为:

Loop 1
Loop 2
-----out of while loop-----

  练习题:用户登录,有三次机会。

username = 'alex'
password = '123'
i = 0
while i < 3:
    name = input('请输入用户名:')
    pwd = input('请输入密码: ')
    if name == username and pwd == password:
        print('登录成功')
        break
    else:
        print('登录失败,你还有%d次机会'%(2-i))
        if (2-i) == 0:
            result = input('是否再试一次?Yes')
            if result == 'Yes':
                i = 0
                continue
    i += 1
else:print('禁止登录!')

)初始编码

三、Day03

)数据类型

 整数(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':['张三','李四']}

))基础数据类型

  1)int,数字

二进制转换: 十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。

python指定x对应的y python x:x_数据类型

 

bit_length()就是帮助你快速的计算整数在内存中占用的二进制码的长度.

num = 10
print(num.bit_length())  # 当十进制用二进制表示时,最少使用的位数
# 运行结果: 4

2)布偶值,bool

布尔值就两种:True,False。就是反应条件的正确与否。

真   1   True。

假   0   False。  

这里补充一下int str bool 三者数据类型之间的转换。

 

# int ---> bool
i = 100
print(bool(i))  # True  # 非零即True
i1 = 0
print(bool(i1))  # False 零即False

# bool ---> int
t = True
print(int(t))  # 1  True --> 1
t = False
print(int(t))  # 0  False --> 0

# int ---> str
i1 = 100
print(str(i1))  # '100'

# str ---> int  # 全部由数字组成的字符串才可以转化成数字
s1 = '90'
print(int(s1))  # 90

# str ---> bool
s1 = '太白'
s2 = ''
print(bool(s1))  # True 非空即True
print(bool(s2))  # False
# bool ---> str
t1 = True
print(str(True))  # 'True'

3)字符串str

Python中凡是用引号引起来的数据可以称为字符串类型,组成字符串的每个元素称之为字符,将这些字符一个一个连接起来,然后在用引号起来就是字符串。

索引与切片

切片:顾头不顾尾

# 字符串的索引与切片

#索引
# s1 = s[0]
# print(s1)
# s2 = s[2]
# print(s2)
# s3 = s[-1]
# print(s3)
# s4 = s[-2]
# print(s4)
# s5 = s[0:]
# print(s5)

s = 'abcdlsesre'
# s10 = s[0:5:2]    # s[首:尾:补偿]
# print(s10)

s11 = s[4::-1]
print(s11)

字符串的操作

# 字符串的操作
s = 'alexWusri'
s1 = s.capitalize()  # 首字母大写
print(s1)
s2 = s.upper()       # 全部大写
print(s2)

s21 = s.lower()      # 全部小写

s_str = 'acEq'
your_input = input('请输入验证码(不区分大小写): ')
if s_str.upper() == your_input.upper():
    print('登录成功')
else:
    print('验证码错误')
# 大小写翻转
s = 'alexWusri'
s3 = s.swapcase()
print(s3)
# (特殊字符或数字)隔开单词首字母大写
s  = 'alex egon wusir'
s4 = s.title()
print(s4)

 

# 填充物并居中
s  = 'alex egon wusir'
s5 = s.center(55,'#')
print(s5)
# 
s  = 'alex\tegon'
s6 = s.expandtabs()
print(s6)
# 公共方法
s = 'ererewvdfrdafgag'
s2 = '你好,你'
l = len(s)
l2 = len(s2)
print(l)
print(l2)
# 以什么开头结尾,endwith
s = 'alexWusir'
s7 = s.startswith('al')
s71 = s.startswith('e',2,5)
print(s71)
print(s7)
# 通过元素找索引,find,找不到返回 -1
# index 通过元素找索引,找不到返回(报错)

s = 'alexWusir'
s8 = s.find('W')
s81 = s.find('Wu')
s82 = s.find('qq')
print(s8,type(s8))
print(s81,type(s81))
print(s82,type(s82))
# strip:默认删除前后空格
s = '  alexWusir    '
s9 = s.strip()
print(s9)

 

# count
s = 'alexaa wusirl'
s10 = s.count('a')
print(s10)
# format 的三种玩法,格式化输出
res = '{} {} {}'.format('egon','18','male')
res = '{1} {0} {1}'.format('egon','18','mnale')
res = '{name} {age} {sex}'.format(sex = 'male',name = 'egon',age = 18)
# format 的三种玩法,格式化输出
s1 = '我叫{},今年{},爱好{},再说一下我叫{}'.format('goudan',24,'reading','goudan')
print(s1)
s2 = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format('goudan',24,'reading')
print(s2)
s3 = '我叫{name},今年{age},爱好{hobbie},再说一下我叫{name}'.format(name = 'goudan',hobbie = 'reading',age = 24)
print(s3)
# replace:替换
s = '的呃呃呃俄方你上课附加费放假啊说发的肌肤方式上课'
s11 = s.replace('上课','下课',1)
print(s11)
# is系列
name = '12323sadfasef'
print(name.isalnum())    # 字符串由字母或数字组成
print(name.isalpha())    # 字符串只由字母组成
print(name.isdigit())    # 字符串只由数字组成

 for循环

s = 'fsjfsf'
for i in s:
    print(i)
s = '1sdafsa仓进空'
if '仓进空' in s:
    print('您的评论有敏感词')

作业及作业讲解

# 编码
# ascii:字母和特殊字符:1个字节,8位
# unicode:16位,2个字节     升级 32位,4个字节
# utf-8:最少1个字节 8位表示。  英文字母用1个字节 8位
#                            欧洲 16位,2个字节
#                            中文 24位,3个字节
# gbk:英文1个字节 8位,中文2个字节 16位
s = 'alexsb'
s1 = s[:]
s2 = s[1:3]
s3 = s[0:]   #s3 = s[:]
s4 = s[0:-1]
s5 = s[0:3:2]
s6 = s[2::-2]
print(s1)
print(s2)
print(s3)
print(s4)
print(s5)
print(s6)
# 用for 和 while 循环输出'asdfer'
s = 'asdfrt'
for i in s:
    print(i)

index = 0
while 1:
    print(s[index])
    index += 1
    if index == len(s):break
# 实现一个整数加法计算器 

content = input('请输入运算公式:').strip()
index = content.find('+')
a = int(content[0:index])
b = int(content[index+1:])
print(a+b)
# 任意输入一段文字,统计输入数字的个数
s = input('>>>')
count = 0
for i in s:
    if i.isdigit():
        count += 1
print(count)

 

四、Day04

 )列表

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
l1 = li[0]
print(l1)
l2 = li[1]
print(l2)
l3 = li[0:3]
print(l3)

列表的增删改查

1)增

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
# 增加
li.append('日天')
li.append(1)
print(li)
# 多次插入列表,按q退出
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
while 1:
    username = input('请输入员工姓名(按q退出):')
    if username.strip().upper() == 'Q':
        break
    else:
        li.append(username)
print(li)
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
li.insert(4,'春哥')
print(li)
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
li.extend([1,2,3])
print(li)
# 输出结果:['alex', [1, 2, 3], 'wusir', 'egon', '女神', 'taibai', 1, 2, 3]

2)删:

1⃣️按索引删除,默认删除最后一个。

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
name = li.pop(1)
print(name)
print(li)

2⃣️按元素删除

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
li.remove('taibai')
print(li)

3⃣️清空列表

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
li.clear()
print(li)

4⃣️删除列表 del

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
del li
print(li)

5⃣️切片删除 

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
del li[0:2]
print(li)

3)改

# 列表修改
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
li[0] = '男神'
print(li)

切片修改

# # 切片修改
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
li[0:2] = '云姐'
print(li)
# 输出结果:['云', '姐', 'wusir', 'egon', '女神', 'taibai']

 

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
li[0:2] = [1,2,3,'春哥','章鱼哥']
print(li)
# 输出结果:[1, 2, 3, '春哥', '章鱼哥', 'wusir', 'egon', '女神', 'taibai']

4)查

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
for i in li:
    print(i)
print(li[0:2])

5)公共方法

1⃣️len

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
l = len(li)
print(l)

2⃣️count

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
num = li.count('taibai')
print(num)

3⃣️index

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
print(li.index('alex'))

4⃣️sort 排序

li = [1,5,4,7,6,2,3]
li.sort()
print(li)
# 正向排序
# # 倒向排序
li = [1,5,4,7,6,2,3]
li.sort(reverse=True)
print(li)
# # 反转
li = [1,5,4,7,6,2,3]
li.reverse()
print(li)