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

  • 相关阅读:
    QFramework 使用指南 2020(二):下载与版本介绍
    QFramework 使用指南 2020 (一): 概述
    Unity 游戏框架搭建 2018 (二) 单例的模板与最佳实践
    Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介
    Unity 游戏框架搭建 2017 (二十三) 重构小工具 Platform
    Unity 游戏框架搭建 2017 (二十二) 简易引用计数器
    Unity 游戏框架搭建 2017 (二十一) 使用对象池时的一些细节
    你确定你会写 Dockerfile 吗?
    小白学 Python 爬虫(8):网页基础
    老司机大型车祸现场
  • 原文地址:https://www.cnblogs.com/Neo007/p/6939893.html
Copyright © 2011-2022 走看看