zoukankan      html  css  js  c++  java
  • 【Python】Python3基本语法入门学习

    • 0.Python概述
    • 1.First Word Game
    • 2.变量与字符串
    • 3.improved game
    • 4.Python数据类型
    • 5.常用操作符
    • 6.分支与循环
    • 7.列表
    • 8.元组
    • 9.字符串内置方法 (密码安全性检查脚本)
    • 相关快捷键

    零、Python概述

    java代码的1/5
    脚本语言(源代码编译器由C语言写成)
    追求完美的语言
    云计算

    一、First Word Game

    1.缩进表示层次//类比括号

    2.BIF = Built-in functions // 内置函数,脚本语言

    	>>>dir(__builtins__)   // 双下划线,查询Python内置函数
    	>>>help(BIF名称)		   // 用于查询具体功能,类比MSDN
    

    二、变量与字符串

    1.Python没有“变量”,只有“名字”,把名字贴在值的上边

    2.名称区分大小写,确保使用英文标点

    3.字符串

    	>>> 5+8
    	>>> 13
    	>>> '5' + '8'
    	>>> '58'
    

    4.原始字符串——反斜杠与转义字符

    >>> str = 'C:
    ow'
    >>> str
    'C:
    ow'
    >>> print(str) //默认识别
    为回车
    C:
    ow
    >>> 
    

    解决方法:

    	>>> str = r'C:
    ow'
    	>>> print (str)
    	C:
    ow
    	>>> str
    	'C:\now'
    	>>> 
    

    5.长字符串
    使用三引号'''text'''

    6.And 不同于 C语言

    >>> 3 and 6
    6
    >>> 6 and 3
    3
    >>> 
    

    7.支持中文作变量名——>UTF-8编码

    三、improved game

    	import random #导入模块
    secret = random.randint(1,10)
    times =3
    print('-----------------------------------')
    guess = 0
    print ("不妨猜一下",end = "")
    #print()默认在打印完字符串后自动添加一个换行符,end=“ ”参数表示用空格代替换行
    while(guess != secret) and (times >0):
        temp = input()		#input 返回值始终是字符串
    
        if temp.isdigit():	#所有字符都是数字,为真返回true
    	    guess = int(temp)   #变量使用之前必须进行赋值
    	    
    	    if guess == secret:
    	        print("Bingo!")
    	        print("哼,猜中了也没有奖励!")
    	    else:
    	        if guess > secret:
    	            print("too big")
    	        else:
    	            print("too small")
    	        if times > 0:
    	            print ("One more try!",end = " ")
    	        else:
    	            print ("机会用完啦")
    	else:
    		print("抱歉,输入有误,请重新输入")
    	times = times - 1
    print("游戏结束,不玩啦^_^")
    
    

    四、闲聊之Python 数据类型

    • 概述:整型 布尔类型 浮点型 科学计数法(e记法)

    1.强制转换
    int(5.99) == 5 #截断处理
    str(520) == '520'
    2.获得关于数据类型的信息

    >>> v1 = '520'
    
    >>> type(v1)	#类型名称
    <class 'str'>
    >>> isinstance(v1,int)
    False
    

    五、常用操作符

    5.1除法
    Python3 已采用真实值除法,若想用floor需用双斜杠//

    	10 / 4 == 2.5
    	10 //4 == 2
    

    5.2 幂运算 **
    需注意优先级问题

    >>> -3 ** 2
    -9
    >>> 3 ** -2
    0.1111111111111111
    >>> 
    
    

    六、分支和循环 ——>打飞机小游戏

    6.1 C语言之悬挂匹配

    if()
    	if ()
    	printf();
    else 			//就近匹配,与缩进量不符——>C语言括号习惯
    	printf();
    

    6.2 断言assert
    条件为假时抛出AssertionError的异常
    >>> assert 3>5
    确保某个条件一定为真

    6.3 if-elif-else 判断语句
    6.4 成员资格运算符

    >>> name = "plane"
    >>> 'p' in name
    True
    

    6.5 for 循环

    for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
    语法:
    for循环的语法格式如下:
    for iterating_var in sequence:
    statements(s)

    fruits = ['banana', 'apple',  'watermelon']
    for each in fruits:  #each为循环变量,类比i
        print(each,len(fruits))
    
    
    banana 3
    apple 3
    watermelon 3
    

    6.6 range()
    语法:range( [start,]stop[,step = 1(default)])
    作用:生成一个从start到stop(不含)的数字序列,默认step = 1

    >>> for i in range(2,5):
    	print(i)
    	
    2
    3
    4
    

    七、列表:一个打了激素的数组

    7.1 创建列表

    number = [1,2,3,4,5] #普通列表
    mix =[1,"v1",[1,2,3]]#混合列表
    empty = [] 			 #空列表
    

    7.2 修改列表方法

    member.append('apple') 		#追加单参数
    member.extend(['A','B'])	#用拓展列表的方法追加多个元素
    member.insert(0,'Pudding')	#有序插入,从0开始
    
    
    >>> member = ['Louis']
    >>> member.append('apple')
    >>> member
    ['Louis', 'apple']
    >>> member.extend(['A','B']
    	      )
    >>> member
    ['Louis', 'apple', 'A', 'B']
    >>> member.append(['C','D']) #区分append & extend
    >>> member
    ['Louis', 'apple', 'A', 'B', ['C', 'D']]
    >>> 
    

    7.3 列表元素

    # 1.获取列表元素
    >>> member[1]
    'apple'
    # 2.删除元素
    member.remove('A') #无需关心位置
    del member[3]
    del member		   #删除整个列表
    
    # 3.弹栈操作
    >>> member.pop()
    'B'
    >>> member
    ['Louis', 'apple', 'A']
    >>> 
    
    >>>member.pop(index) #索引号pop
    
    # 4.列表分片 ————一次性获取多个元素
    
    #语法:listname[start:end:step] 
    
    
    ['Louis', 'apple', 'A']
    >>> member[1:3] #3-1 == 2 ,两个元素
    ['apple', 'A']
    >>> member2 = member[:] #获得列表的拷贝(不修改原列表)
    >>> member2
    ['Louis', 'apple', 'A']  
    
    
    P.S.list1 = list2 #此时list1 ,list2 指向同一内存区域
    

    7.4 列表操作符

    • 比较操作符:只比较第一个元素
    >>> list1 = [1,2,3]
    >>> list2 = [2,1,3]
    >>> list1 < list2
    True
    >>> 
    

    7.5 列表的内置函数(BIF)
    dir(list) #动手并应用

    1.索引查找

    list2.index('123',3,7) #查找索引号3~7之间的元素,返回'123'第一次出现的索引
    

    2.Reverse 逆序列表

    3.sort() 排序

    sort方法还有两个可选参数:key和reverse

    • key在使用时必须提供一个排序过程总调用的函数:
    x = ['mmm', 'mm', 'mm', 'm' ]
    x.sort(key = len)
    print x # ['m', 'mm', 'mm', 'mmm']
    
    • reverse实现降序排序,需要提供一个布尔值:
    y = [3, 2, 8 ,0 , 1]
    y.sort(reverse = True)
    print y #[8, 3, 2, 1, 0]
    

    八、元组:带上了枷锁的列表 tuple

    元组和列表的区别
    ——元组不可被轻易修改,只能通过新建来间接修改,消耗了资源

    ——不止小括号和中括号的区别,逗号才是关键!

    8.1 创建和访问一个元组

    >>> temp1 = (1)
    >>> type(temp1)
    <class 'int'>
    >>> temp = []
    >>> type(temp)
    <class 'list'>
    >>> temp = ()
    >>> type(temp)
    <class 'tuple'>
    
    
    >>> temp = 2,3,4
    >>> type(temp)
    <class 'tuple'>
    
    
    >>> temp = 1,
    >>> type(temp)
    <class 'tuple'>
    

    8.2 更新和删除元组

    切片方法
    
    >>> v1 = ('A','B','C','D')
    >>> v1 = v1[:2] + ('插入的字符串',) + v1[2:]
    >>> v1
    ('A', 'B', '插入的字符串', 'C', 'D')
    

    P.S. 回收机制:无标签指向时自动回收

    8.3 元组相关的BIF

    count()

    index()

    8.4 python引入了负数索引

    九、字符串:各种奇葩的内置方法

    • 概述

      内置方法 注释
      capitalize() 把字符串的首字符改成大写
      casefold() 把字符串的所有字符改成小写
      center(width) 把字符串居中,并使用空格填充至长度width的新字符串
      count(sub[,start,end]) 返回sub在字符串中出现的次数,start和end参数可选
      encode(encoding)='utf-8',error='strict' 以encoding指定的编码格式对字符串进行编码
      endwith(sub[,start,end]) 检查是否以sub字符串结尾
      expandtabs([tabsize]=8) 把字符串中的tab( )转化为tabsize个空格(部分覆盖)
      find(sub[,start,end]) 存在则返回索引值,否则返回-1
      index(sub[,start,end]) 存在则返回索引值,否则产生异常ValueError
      join(sub) 以字符串作为分隔符,逐个插入到sub中所有的字符之间
      rfind(sub[,start,end]) 从字符串右边开始查找,效率有别(逆向思维)
      split([sep=None,maxsplit = -1]) 不带参数默认以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个字符串,返回切片后子字符串拼接的列表 (例如找到空格就切分)
      strip(['string']) 删除指定字符,default:space
      translate(table) 根据table的规则(可以由str.maketrans('a','b')定制)转换字符串中的字符

    9.1 本质:返回新字符串,原字符串空间仍存在(类比Java GC机制)

    9.2 内置方法示例

    //join
    >>> str2
    'xiaoxie'
    >>> str2.join('123')
    '1xiaoxie2xiaoxie3'
    
    //split
    >>> str1 = 'i love life'
    >>> str1.split()
    ['i', 'love', 'life']
    >>> str1.split('i')
    ['', ' love l', 'fe']
    
    >>> str7 ='sssaaasss'
    >>> str7.translate(str.maketrans('s','b'))
    'bbbaaabbb'
    >>> str.maketrans('s','b')
    {115: 98} //字典映射
    
    

    9.3 python三引号 区别
    python 三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如/n和/t都会被保留,这样的好处是你可以替换一些多行的文本

    9.4 密码安全性检查脚本

    # 密码安全性检查代码
    #
    # 低级密码要求:
    #   1. 密码由单纯的数字或字母组成
    #   2. 密码长度小于等于8位
    #
    # 中级密码要求:
    #   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|)任意两种组合
    #   2. 密码长度不能低于8位
    #
    # 高级密码要求:
    #   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|)三种组合
    #   2. 密码只能由字母开头
    #   3. 密码长度不能低于16位
    
    symbol = r'''`!@#$%^&*()_+-=/*{}[]|'";:/?,.<>'''   #三引号,原样保留	等转义字符
    string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    number = '0123456789'
    
    passwd = input('请输入需要检查的密码组合:')
    
    # 判断长度
    length = len(passwd)
    
    while (passwd.isspace() or length == 0) :
        passwd = input("您输入的密码为空(或空格),请重新输入:")
        length = len(passwd)
    
    if length <= 8:
        flag_level = 1
    elif 8 < length < 16:
        flag_level = 2
    else:
        flag_level = 3
    
    flag_con = 0
    
    # 判断是否包含特殊字符
    for each in passwd:
        if each in symbol:
            flag_con += 1
            break
        
    # 判断是否包含字母
    for each in passwd:
        if each in string:
            flag_con += 1
            break
    
    # 判断是否包含数字
    for each in passwd:
        if each in number:
            flag_con += 1
            break    
    
    # 打印结果
    while 1 :
        print("您的密码安全级别评定为:", end='')
        if flag_level == 1 or flag_con == 1 :
            print("低")
        elif flag_level == 2 or flag_con == 2 :
            print("中")
        else :
            print("高")
            print("请继续保持")
            break
    
        print("请按以下方式提升您的密码安全级别:
    
        	1. 密码由数字、字母及特殊字符三种组合
    
        	2. 密码长度不能低于16位")
        break
    

    P.S.快捷键

    1.回到上一条语句 alt+n ctrl+p
    2.智能输入提示 tab

  • 相关阅读:
    Python学习第106天(Django的静态文件static、url分组)
    Python学习第105天(Django初步实现)
    Python学习第104天(Django前传web框架)
    Python学习第103天(http协议)
    Python学习第102(数据库进阶)
    Python学习第101天(mysql索引)
    Python学习第100天(多表查询:连接查询、复合查询、子查询)
    Python学习第99天(子网划分)
    java强制转换+自动转换
    WINDOWS快捷键
  • 原文地址:https://www.cnblogs.com/Neo007/p/6939893.html
Copyright © 2011-2022 走看看