python基础01,,1、python介绍


1、python介绍及与其它开发语言比较:

  相比C、Java运行慢,但是代码简介,可以减小学习成本,加快项目进度。跨平台,支持Linux和Windows。

  C语言是所有高级语言的基础,若要研究python语言的原理,需要再看C。C语言比python快的原因就是,C语言是直接将代码转换为机器码,提供给机器运行。

  Python及Java、PHP等高级语言都是由各自的解释器编译成字节码,再由字节码转换为机器码提供给机器运行。

  Python按照解释器的不同可以分为三类:

    CPython:将代码解释为C语言的字节码,然后再转换为机器码(逐行编译)。现在默认的是这种。

    pypy:代码--》C语言字节码--》机器码(全部转换完成)--》运行 。解决Python运行速度相对较慢的问题。

    其它语言开发的Python:代码--》相应语言的字节码--》机器码。

    执行过程:打开代码文件--》词法、语法分析--》解释为字节码文件

  若看到.pyc结尾文件,即解释好的字节码文件。

  在命令行模式运行python文件:解释器位置\python.exe python代码文件地址

                eg:C:\Users\git.git-THINK\AppData\Local\Programs\Python\Python35\python.exe F:\wangkc\day01\s3.py

2、字符编码

  ASCII码:美国标准,包括英文字母、数字及特殊符号等。一个字符占用一个字节。一个字节8位。

  万国码Unicode:每个字符至少占用两个字节。字母占用两个,前面由0补齐;中文占用3个字节。

  utf-8:万国码进行压缩,节约内存。英文占用1个字节;中文占用3个字节。

  gbk、GB2312:中文两个字节来表示

  扩展:乱码原因:文件编码及解释器编码不一致。

    文件编码:File-->default settings -->搜索coding-->File Encoding,

    解释器编码:可以通过在代码文件的第二行设置: # -*- coding:utf-8 -*-

          (py3默认为utf-8,py2默认为ascii。所以为了方便在第二行设置解释器编码格式,不管以后这段代码在哪里运行都是可以的)

3、IDE建议使用pycharm,常用设置:

  编码设置:File-->default settings -->coding-->File Encoding

  文本样式:通常第一行设置解释器所在的安装路径,第二行是解释器的编码格式。

      File-->default settings -->搜索temp-->File and Code Templates -->Python Script,在右边的文本框中输入:

      #!C:\Users\git.git-THINK\AppData\Local\Programs\Python\Python35\
      # -*- coding:utf-8 -*-

  按CTRL+滚轮滑动文本放大缩小:File-->setting-->搜索mouse-->General-->右侧的Mouse选项框中三个选项全选:Change font size(Xoom) with Ctrl +Mouse Wheel

  

4、变量:

  变量名:就是记录的该变量的值所在的内存地址。

    eg1:name1=‘wangkc‘

      name2 = name1

      name1 = ‘xingxing‘

      print(name2) # 打印的还是‘wangkc’

    eg2: name1 = ‘wangkc‘

       name2 = ‘wangkc‘

       这里面py3做了内存优化,name1和name2使用的是同一个内存地址。

  变量名的命名:字母、数字(不能开头)、下划线

         不能是python里面的关键字

         可以使用下划线连接,增加变量名的可读性。

5、输入、输出语句:input、getpass(需导入import getpass)

  input: num1 = int(input(‘请输入一个整数:‘))

      括号里面是提示信息,提示用户在控制台输入一个值,并将值赋值给一个变量

      注意:input得到的变量的值为字符串格式,如果需要进行数学运算等,需要进行强制转换:int(num1)--》转换为整数格式。

  getpass:隐式显示,在控制台输入的是显示不出来的,需要在cmd命令行格式执行该文件才能显示。    

import getpassnum1 = int(getpass.getpass(‘请输入一个整数:‘))if num1 == 1:    print(‘good!‘)

  然后在cmd执行:C:\Users\git.git-THINK\AppData\Local\Programs\Python\Python35\python.exe F:\wangkc\day01\s2.py

6、注释方法:

  #:单行注释

  “”“ ”“”或者‘‘‘ ‘‘‘:多行注释

  快捷方式:选中然后按CTRL+?

7、while 条件表达式:

    循环体

  eg1:求1-100直接所有数的和

i = 1sum = 0while i < 101:    sum = sum + i    i += 1print(sum)

8、continue(直接跳出本次循环,直接开始下次循环)、break(跳出整个循环):

  eg1:求1到100之间所有数的和,使用break:

i = 1sum = 0while True:    sum = sum + i    if i == 100:        break    i += 1print(sum)

   eg2:求1/2/3/4/5/6/8/9的和

 

i = 1while i < 10:    if i == 7:        i += 1  #这一行代码要在continue前面,否则,代码执行会进入死循环,不断的打印6        continue    print(i)    i += 1

  

9、for循环:注意这里for循环只能用for 变量1 in 变量2格式。

list1 = [‘li‘,‘王‘,‘政‘,‘张‘]for name in list1:    print(name)

10、if条件分支语句:

score = int(input(‘请输入你的分数‘))if score >= 90:    print(‘优秀‘)elif score >= 80 and score < 90:    print(‘良好‘)else:    pass    #pass 表示通过,不做任何操作

  

11、运算符: %取余 ,//整除 , ** 几的n次方

  a: i = i+1 同 i += 1

  b: and(两边都True则为True)、 or(有一个True则为True)

  c: in(包含 a = ‘i‘ in ‘comein‘ ,一般用于判断某个字符串或者列表中是否包含某个元素。)

12、占位符:%s字符串,%d数字

  str = ‘welcome %s come our home,her age is %d‘ % (‘wangkc‘,18)

13、数据类型:

  1)整数:a = 18或者a = int(18)

       a = ‘18‘

      转换:b = int(a)

  2)布尔boolean:True或者False

    1为True,0为False

    ‘’空字符串为False,其它为True

print(int(True))a = ""if not a:    print(‘yes‘)

  

  3)字符串:定义str(),强制转化、字符串拼接、字符串格式化(占字符%s)判断字符串a是否在字符串b中、移除索引空白、分割、长度、切片、索引

    a字符串定义:str1 = ‘wang‘ 或者str2 = str("wang")

    b、转化:    

i = int(18)str1 = str(int)print(type(str1))  #class  ‘str‘    # type(变量名)  返回该变量的类型

    c、字符串拼接使用“+”:print(‘name‘+‘age‘)

    d、移除空白:变量名.strip()去除两侧的空白、lstrip移除左侧空白、rstrip移除右侧空白,注意空白包括空格和换行等。  

val = ‘   tian  yi youqing    ‘new_val = val.strip()  #得到一个新的字符串,不会对原字符串产生影响。new_val = val.lstrip()new_val = val.rstrip()print(val)print(new_val)

    e、长度len(变量名)   

val = ‘jjdjjdjd‘v = len(val)print(v)

    f、索引 

val = ‘ddfddd‘i = 0while i < len(val):        print(val[i])    i += 1

    g、分割 变量名.split(‘分隔符‘,[数字])

val = ‘abc|def|hij|klm|nob‘val_list = val.split(‘|‘)print(val_list)  #[‘abc‘, ‘def‘, ‘hij‘, ‘klm‘, ‘nob‘]print(val.split(‘|‘,2))  #[‘abc‘, ‘def‘, ‘hij|klm|nob‘]    #后面的数字表示把前面的几个分割print(val.split(‘|‘,-2))  #[‘abc‘, ‘def‘, ‘hij‘, ‘klm‘, ‘nob‘]

    h、切片  

val = ‘abcdefghijk‘print(val[1:3])  #打印出索引为1到(3-1)的字符串  bcprint(val[:4])  # abcdprint(val[5:])  #fghijkprint(val[:-1])  #abcdefghij

  

  4)列表list:定义、判断是否包含、索引、长度、切片、末尾追加、插入、删除remove del、修改、for循环

#列表创建list1 = [‘abc‘,‘ddf‘,‘iidk‘,‘kkk‘]list2 = list([‘abc‘,‘ddf‘,‘iidk‘,‘kkk‘])#判断是否包含if ‘abc‘ in list1:    pass#索引:print(list1[0])#长度print(len(list1))#切片:print(list1[0::2]) #起始位:终止位:步长   [‘abc‘, ‘iidk‘]#追加:list.append(元素),直接返回新的列表,不用再赋值了。如list2 = list1.append(‘hhhhh‘)print(list1,list2)   #[‘abc‘, ‘ddf‘, ‘iidk‘, ‘kkk‘, ‘hhhhh‘] None    list2就是Nonelist1.append(11111)print(list1)#插入:insert(索引,元素)list1.insert(0,‘yyyyy‘)print(list1)#删除:remove(元素),  del list[n]list1.remove(11111)print(list1)del list1[0]print(list1)#更新:赋值list1[2] = 22222print(list1)#for循环轮询打印for i in list1:    print(i)

  

  5)字典:创建、key:value形式(根据索引名找到对应的值)、长度、增加或者是修改(因为字典是无序的,因此在增加时,若没有就是增加,有则修改)、删除、for循环

#创建dict1 = {‘name‘:‘wangkc‘,‘pwd‘:1234,‘age‘:18}dict2 = dict({‘name‘:‘xiaoling‘,‘pwd‘:1234,‘age‘:18})#依据索引名称或者值pwd = dict1[‘pwd‘]print(pwd)#长度n = len(dict1)print(n)#增加或修改,无则增加,有则修改dict1[‘no‘] = 1print(dict1)#删除 del# del dict1[‘age‘]# print(dict1)#for循环for item in dict1:    print(item)    #若是只是字典名,则默认是打印索引名for item in dict1.keys():    print(item)   #打印索引名for item in dict1.values():    print(item)  #打印索引值for key,val in dict1.items():    print(key,val)  #key和value 全部打印no 1 pwd 1234 name wangkc age 18

  

  

  

  

python基础01

评论关闭