Python基础小知识

1 Python2与3区别

1.1 版本

       python2 源码不标准,混乱,重复代码太多,
       python3 统一 标准,去除重复代码。

1.2 环境

1.2.1 编译型

          一次性将所有程序编译成二进制文件。
          缺点:开发效率低,不能跨平台。
         优点:运行速度快。
         eg:C,C++等等。

1.2.2 解释型

         当程序执行时,一行一行的解释。

        优点:开发效率高,可以跨平台。
        缺点:运行速度慢。
        eg:python ,php,等等。

1.3 编码

       python2默认编码方式是ascii码
       解决方式:在文件的首行:#-*- encoding:utf-8 -*-
       python3 默认编码方式utf-8
       utf-8:一个中文用三个字节表示
       gbk:国内使用,一个中文用两个字节表示
       Unicode:一个中文用四个字节表示

1.4 变量

       将一些运算的中间结果暂存到内存中,以便后续代码调用。
    1.必须由数字,字母,下划线任意组合,且不能数字开头。
    2.不能是python中的关键字。
    3.变量具有可描述性。
    4.不能是中文。
    关键字如下:
                       ['and', 'as', 'assert', 'break', 'class', 'continue','def', 'del', 'elif', 'else', 'except', 'exec','finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

1.5 字符串

       python当中凡是用引号引起来的都是字符串。
       相加:字符串的拼接。
       相乘:str * int

print('you are beautiful '*5)
print('you'+' and me')

结果

you are beautiful you are beautiful you are beautiful you are beautiful you are beautiful 
you and me

1.6 注释

  单行注释:#
  多行注释:'''被注释内容''' """被注释内容"""

1.7 基础用户交互,input

age=input('please input age:')

  当运行代码输入age的值时,返回为字符串格式.
  注:
  字符串→数值型:int(str)
  数值型→字符串:str(int)

1.8 循环(if/while)

   1.8.1 if

    1>.if 条件:
           结果
         else:
           结果
    2>.if 条件:
           结果
         elif 条件:
              结果
         else:
             结果
    3>.if 条件:
            结果

                 if 条件:
               结果
         else:
            结果

   1.8.2 while

    1> while 条件:
                  所要执行的程序
    2> while 条件:
                  所要执行的程序
                  break/continue

   1.8.3 while…else…        

count=0
while count < 5 :
    count+=1
    if count==3:pass
    print('loop',count)
else:
    print('循环完了')

       注:当while循环没有被break打断时,else中的语句执行,否则不执行。

1.9 运算符

       优先级:()→not→and→or
       x or y x为True,则返回x
       非零转化为bool值为True,0为False
       x and y x为True,则返回y
       如果逻辑运算符左右均为表达式时,则返回bool值。

print(0 or 4 and 3 or 2)
print(1>2 and 3 or 4 and 3<2)
print(2 or 1 < 3)
print(2 or 1 < 3 and 2)

      结果:

            3
            False
            2
            2

1.10 格式化输出     

name=input('请输入名字:')
age=input('请输入年龄:')
job=input('请输入工作:')
hobbies=input('请输入爱好:\n')
msg='''----  Introduce Of %s-----
    Name:%s
    Age:%d
    Job:%s
    Hobbies:%s
------------end--------------''' %(name,name,int(age),job,hobbies)
print(msg)
注:如果想要加入“%”作为输出字符时,则必须用“%%”,前面的%表示转义字符
eg:
    msg='''----  Introduce Of %s-----
    Name:%s
    Age:%d
    Job:%s
    Hobbies:%s
    学习进度为3%%
------------end--------------''' %(name,name,int(age),job,hobbies)
print(msg)

1.11 习题     

      1.求1-100之间的奇数。
      2.输出 1 2 3 4 5 6 8 9 10。
      3.求1-100的和。
      4.计算1-2+3-4+5……99。
      5.除88外的奇数值和加偶数相反数的和。1-2+3-4+5……+99     

1.
i=0
while i < 100:
    i += 1
    if (i%2):
        print(i)
    else:
        continue    
2.
i=0
while i < 10:
    i += 1
    if i==7:
       continue
    print(i)
3.
i=1
sum=0
while i <=100:
    sum=sum+i;
    i +=1
print(sum)
4.
i=1
sum=0
while i<100:
    if (i%2):
        s=i
    else:
        s=-i
    sum=sum+s
    i +=1
print(sum)     
5.
i=1
sum=0
while i<100:
    
    if i==88:
        i +=1
        continue
    elif (i%2):
        s=i
    else:
        s=-i
    sum=sum+s
    i +=1
print(sum)

    结果:请自行运行。

1.12 数据类型

         1. int 用于计算
         2. bool:用户判断
         3.str:存储少量数据,便于操作
         4. list:[1,'2','345',[1,2,3]],存储大量数据      
         5. 元组:(1,'2','345',[1,2,3]) ,只读
         6.dict:字典{'name':'eric','age':20}
         7.字典{'eric':[各种信息],'lucifer':[各种信息]} ,主要为关系型数据存储

1.13 字符串操作    

  s.capitalize():首字母大写。
  s.upper():全部大写。
  s.lower():全小写。
  s.swapcase():大小写翻转。
  s.center(20'#'):设置总长度并将字符串居中,第二个参数表示用“#”填充。
  s.title():如果中间用特殊字符(包括数字)隔开,则可以通过此将所有首字母大写。
  s='sadhhj'
  s.startswith('sa'),返回为bool类型,判断字符串以什么开头。
  s.startswith('d',2,5),判断2-5位是否以d开头。
  s.find('s'),找到了返回所查字符的索引,没找到返回-1。
  s.index('s'),找到了返回所查字符的索引,没找到报错。
  s.strip(),默认去空格,只能开头、结尾,参数可以设置需要删除的符号。
  s.count(),统计个数,参数可以设置想要的计数。  
  s.split(),按照指定的形式分割。str→list
  s.replace(old,new),替换,参数分别为以前值和以后值,默认为所有替换。
  s.isaphla(),字符串只由字母组成。
  s.isdigit(),字符串只由数字组成。
  s.isalnum(),字符串由数字或字母组成。

     注:
    1.空字符串为F,非空均为T。
    2.字符串操作同数组操作。
    3.字符串切片取值:顾头不顾尾s[i:i+j]。
    4.从后往前取值,用s[-i],s[:]=s[0:]。
    5.间隔取值:s[首:尾:步长]。
    6.bit_length(i):将i转化为二进制最少的个数。 公共方法:len(s)。

1.14 格式化输出之format()

  res='{} {} {}'.format('egon',18,'male')
  res='{1} {0} {1}'.format('egon',18,'male')
  res='{name} {age} {sex}'.format(name='egon',age=18,sex='male')

1.15  模拟登陆

i=3
username='Eric_one'
password='123456'
while i>0:
        username1=input('请输入用户名:')
        if username1==username:
            password1=input('请输入密码:')
            if password1==password:
              print('您登陆成功')
              break
            else:
              print('密码输入错误,请重新输入')
              i=i-1
              print('你还有%d次机会'%i)
              if i==0:
                  in_value=input('再试试?Y or N\n')
                  if in_value=='Y':
                     i=3
        else:
            print('用户名错误,请重新输入')
            i=i-1
            print('你还有%d次机会'%i)
            if i==0:
                  in_value=input('再试试?Y or N\n')
                  if in_value=='Y':
                     i=3

        注:只有三次机会,三次过后需进行确认是否重新确认继续登录尝试。

               python在编译安装时,可以通过参数--enable-unicode==ucs2 或--enable-unicode==ucs4,分别用于指定使用2个字节、4个字节表示一个Unicode字符;Python3无法进行        选择,默认使用ucs4。查看当前Python中表示Unicode字符串时占用的空间:

               import sys
               print(sys.maxunicode)
             如果值为65535,则表示使用ucs2标准,即:2个字节表示
             如果值为1114111,则表示使用ucs4标准,即:4个字节表示

 1.16 列表的增删改查以及嵌套

1.16.1 增

        1>增加append
    li=['one','ericone','eric','alex','sdfg','123']
    li.append('men')
    li.append(1)
    print(li)

    需求:输入人名进行添加,输入'q'退出
    while 1:
           input_value=input('请输入人名,准备添加:\n')
           if input_value.lower()=='q':
              break
           else:
              li.append(input_value)
        2>按照位置插入
    li.insert(index,object)
        3>可迭代的添加li.extend(iterable),int不可迭代,添加的是元素(元素分割后) 

 

    li.extend([1,2,3]) 

1.16.2 删

        1>pop:按索引删除pop(index),有返回值,返回值为删除的元素,默认删除最后一个
        2>remove:按元素去删,remove(value),无返回值
   3>clear:清空列表,无返回值
   4>del li:删除列表
   5>del li[想要删除的首元素:尾元素]:切片删

1.16.3 改

        1>根据索引直接赋值
    li[0]
   2>切片改
    li[0:2]='efg'#按元素添加进列表

1.16.4 查

    for i in li:
        print(i)
    通过for循环查询
    列表中只有index查找索引

1.16.5  列表的嵌套

    li[1][1]

1.17 join方法、range、排序

  s='sfgjjf'
  s1='++'.join(s)#上面字符通过++连接
  li=['sd','sf','aasd','神人']
  s1=''.join(li)#字符串无缝拼接 li→str join()
  str→list:split()
  for i in range(0,10,2):
      print(i)
  for i in range(0,10,-1):
      print(i)
   
  li=[1,3,5,7,82,2,4,6,9]
  li.sort()#默认升序
  li.sort(reverse=True)降序
  li.reverse()反转
  print(li)

1.18 习题

 1.18.1 li=['alex','wusir','eric','rain','alex']

  1.计算列表的长度并输出。
  2.列表中追加元素‘seven’,并输出添加后的列表。
  3.请在列表的第1个位置插入元素‘Tony’,并输出添加后的列表。
  4.请修改列表第2个位置的元素为‘Kelly’,并输出修改后的列表。
  5.请将列表I2=[1,'a',3,4,'heart']的每一个元素添加进列表li中,一行代码实现,不允许使用循环添加。
  6.请将字符串s='qwert'的每一个元素添加到列表里,一行代码实现。
  7.请删除列表中的元素'eric',并输出删除后的列表。
  8.请删除列表中的第2个元素,并输出删除的元素和删除后的列表。
  9.请删除列表中的第2至4个元素并输出删除元素后的列表。
  10.请将列表所有的元素反转,并输出反转后的列表。
  11.请计算出'alex'元素在列表中出现的次数并输出次数。

       示例代码如下:

  li=['alex','wusir','eric','rain','alex']
  l1=len(li),print(l1)
  li.append('seven'),print(li)
  li.insert(0,'Tony'),print(li)

  li[1]='kelly'
  print(li)

  li[0:0]=[1,'a',3,4,'heart']
  print(li)
  
  li[1:1]='qwert'
  print(li)

  li.remove('eric')
  print(li)

  print(li.pop(1))
  print(li)

  del li[1:4]
  print(li)

  li.reverse()
  print(li)
  print(li.count('alex'))

1.18.2 写代码,有如下列表,利用切片实现每一个功能

          li=[1,3,2,'a',4,'b',5,'c']

  1>通过对li列表的切片形成新的列表l1,l1=[1,3,2]。
  2>通过对li列表的切片形成新的列表l2,l2=['a',4,'b']。
  3>通过对li列表的切片形成新的列表l3,l3=[1,2,4,5]。
  4>通过对li列表的切片形成新的列表l4,l4=[3,'a','b']。
  5>通过对li列表的切片形成新的列表l5,l5=['c']。
  6>通过对li列表的切片形成新的列表l6,l6=['b','a',3]。

       示例代码如下:

  li=[1,3,2,'a',4,'b',5,'c']
  print(li[0:3]
  print(li[3:6])
  print(li[0:-1:2])
  print(li[1:-2:2])
  del li[0:-1]
  print(li)
  print(li[-3::-2])

1.18.3 写代码,有如下列表,按照要求实现每一个功能

  li=[2,3,'k',['qwe',20,['kl',['tt',3,'l']],89],'ab','adv']
  1>将列表li中的'tt'变成大写 (两种方式)。
  2>将列表中的数字3变成字符串'100' (两种方式)。
  3>将列表中的字符串'l'变成数字101 (两种方式)。

示例代码如下: 

    li=[2,3,'k',['qwe',20,['kl',['tt',3,'l']],89],'ab','adv']
    li[3][2][1][0]='TT'
    li[3][2][1][0]=li[3][2][1][0].upper()
    print(li)

    li[1] = '100'
    li[3][2][1][1] = '100'
    print(li)
    li[3][2][1].remove(3)
    li[3][2][1].insert(1,'100')
    print(li)

    li[3][2][1][2]=101
    li[3][2][1][2].replace('1',101)
    print(li)

1.18.4 请用代码实现

  li=['alex','eric','rain']
  利用下划线将列表的每一个元素拼接成字符串'alex_eric_rain'。 

    li=['alex','eric','rain']
    s='_'.join(li)
    print(s)

1.18.5 代码实现以下功能 

  查找列表li中的元素,移除每个元素的空格。
  并找出以’A’或者’a’开头,并以’c’结尾的所有元素,
  并添加到一个新列表中,最后循环打印这个新列表。 

  li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir','  aqc']
  b=[]
  for i in li:
       s=i.strip()
       if (s.startswith("A")or s.startswith("a"))and s.endswith("c"):
           b.append(s)
  for x in b:
       print(x)

  for i in li:
       s=i.strip()
       if s[0].upper() == 'A' and s[-1] == 'c':
           b.append(s)
  for x in b:
       print(x)

1.18.6 实现下面功能

     开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
     敏感词列表 li = ["苍老","京热",”藤兰”,”野结”]
     则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;
     如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。 

   li=["苍老","京热","藤兰","野结"]
   new_li= []
   info = input("评论")  # 苍老,京热 法律框架第三
   for i in li:
       if i in info:
           l = len(i)
           info=info.replace(i,'*'*l)
   new_li.append(info)
   print(new_li)

1.18.7 统计字符串中的整数

   info=input('>>>').strip()
   for i in info:
       if i.isalpha():
           info=info.replace(i,' ')
   l=info.split()
   print(len(l))

1.18.8 简易加法计算器

   input_value=input('请输入算式:\n').strip()
   list_value=input_value.split('+')以加号进行分割
    sum=0
   for i in list_value:
       sum+=int(i)
   print(sum)

 注意Python中的format与%的区别;

可用来normalize代码格式:https://www.bootcdn.cn/

 

 

posted on 2019-10-30 19:01  眨眼星舟_Eric  阅读(268)  评论(0编辑  收藏  举报

导航