Python基础学习第一天——认识Python

Python语言概述

Python简介

Python编程语言(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型、高级编程、通用型编程语言。Python支持多种编程范式,包括面向对象、结构化、指令式、函数式和反射式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。

Python由来:

Python语言是由Guido van Rossum创造,第一版发布于1991年,命名取自BBC节目Monty Python’s Flying Circus。

Python特色:

简单、易学、免费开源、高级语言、解释性(和编译性相对)自由开放、跨平台、可嵌入、丰富的库

Python应用

应用方向

  • 常规软件开发
  • 科学计算
  • 自动化运维
  • 自动化测试
  • WEB开发
  • 网络爬虫
  • 数据分析
  • 人工智能

Python之禅

美胜于丑陋(Python 以编写优美的代码为目标)

明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

可读性很重要(优美的代码是可读的)

即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

当存在多种可能,不要尝试去猜测而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

Python安装

  • 三种方法
    • Python3(指Python3.6.0及以上) Windows安装:官网下载安装。教程
    • Windows命令行 对于win10设置PATH变量正确 Run > 输入cmd > 回车 > 输入python
    • Linux/GNU 直接命令安装 python3 -v

Python基础语法

基本概念

缩进

Python语言利用缩进表示语句块的开始和结束,而非使用大括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的结束。根据PEP 8的规定,使用4个空格来表示每级缩进。

缩进成为了语法的一部分,并且Python开发者有意让违反了“缩进规则”的程序不能通过解释。

注释

单行注释:#符号右侧的任何代码

多行注释:一对三引号(’’'或""")之间包括的代码

  • 注释用于解释
    • 假设/前提/条件
    • 重要的决定
    • 重要的细节
    • 想要解决的问题
    • 在程序中试图克服的问题
    • 其他有必要的解释等

表达式

由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合

  • 表达式特点

    • 表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响
    • 如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出

语句

一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成

语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果

程序

程序是由一条一条的语句和一条一条的表达式构成的

函数

  • 函数就是一种语句,函数专门用来完成特定的功能

  • 函数长的形如:xxx()

  • 函数的分类:

    • 内置函数 : 或者内建函数,就是由语法规定存在的函数,这些函数,包含在编译器的运行时库中,程序员不比单独书写代码实现它,只需要调用既可
    • 自定义函数 : 由程序员自主的创建的函数 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数(def xxx():)
  • 函数的2个要素

    • 参数 (可以没有参数)
    • 返回值(可以没有返回值,如只执行打印输出功能)

标识符与关键字

关键字

Python有如下35个关键字(保留字),它们不能用作标识符

False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield

标识符

标识符就是名字,在ASCII范围内(U+0001…U+007F),可用于标识符的字符为:大写字母AZ和小写字母az,下划线_以及数字09,但首字不可以用数字。

  • 命名方式

    • 小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
    • 大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
    • 下划线命名法:用下划线“_”来连接所有的单词,比如 get_url buffer_size
  • 命名约定:

    • _spam(单下划线开头):弱“内部使用”标识。对于from M import *,将不导入所有以下划线开头的对象
    • spam_(单下划线结尾):为了避免与python关键字的命名冲突
    • __spam(双下划线开头):在命名一个类特性的时候,采用名字修饰,比如在类SpamEggs内,__spam将变成_SpamEggs__spam
    • __spam__(双下划线开头双下划线结尾):指那些包含在用户控制的名字空间中的“魔术”对象或特性,比如__name____doc____init____import____file__等。建议永远不要将这样的命名方式应用于自己的变量或函数

Python练习

2020/11/16

注:用了部分后续会详细介绍的学习内容

第一题

a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现

a,b = 6, 8
a,b = b,a
print('a=%d b=%d'%(a,b))
# print('a={} b={}'.format(a,b))
a,b = 6, 8
print('a=%d b=%d'%(b,a))
# print('a={1} b={0}'.format(a,b))
a,b = 6, 8
temp = a
a = b
b = temp
print('a=%d b=%d'%(a,b))

第二题

完成字符串的逆序以及统计

设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入

打印出字符串长度

使用切片逆序打印出字符串

str = input('请输入:')
if not len(str) < 31:
  print('长度不低于31,请重新输入')
else:
  print(f'{str}长度为{len(str)}')
  print('{}的逆序字符串为{}'.format(str,str[::-1]))
123,hello world!长度为16
123,hello world!的逆序字符串为!dlrow olleh,321

第三题

要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入

  • 用户名长度6-20,用户名必须以字母开头

  • 密码长度至少6位,不能为纯数字,不能有空格

    注:这里先不采用字符串的isdigit\isalpha\isspace方式

    while True:
      username = input('请输入用户名:')
      if not 6 <= len(username) <= 20:
        print(username+'用户名长度必须为6-20')
        continue
      if not ('a'<=username[0]<='z' or 'A'<=username[0]<='Z'):
        print(username+'用户名必须以字母开头')
        continue
      else:
        print('用户名设置成功!'+username)
        break    
    while True:
        password = input('请输入密码:')
        if len(password) < 6:
          print(password+'密码至少为6位')
          continue
        for i in range(len(password)):
          if '0' <= password[i] <= '9' and i == len(password)-1:
            print(password+'密码不能为纯数字')
            break      
          if password[i] == ' ':
            print(password+'密码不能带有空格')
            break
          continue
        else:
          print(f'设置成功!用户:{username},密码:{password}')
          break     
    
    a1234用户名长度必须为6-20
    123456用户名必须以字母开头
    用户名设置成功!a12345
    a1234密码至少为6位
    123456密码不能为纯数字
    1234 5密码不能带有空格
    设置成功!用户:a12345,密码:12345a
    

你可能感兴趣的:(笔记,入门,python)