zoukankan      html  css  js  c++  java
  • 03 Python学习之Python基础

    变量

    变量是以字母数字下划线组成的字符串,不能以数字开头,不能是Python里面的关键字,Python3里面可以使用中文,但不建议这样做
    变量的形式:
    驼峰命名,例如:InputName
    下划线,例如:input_name

    变量在内存中的命名是唯一的,变量只能指向数据,不能指向变量,变量和变量的赋值也是将数据的指向地址赋值过去,并不是变量
    例1:

    num1 = 10
    num2 = num1
    

    说明:
    将num1赋值给num2也只是将num1指向的存储10的内存地址赋值给num2

    常量

    常量的值是不能被改变的,一但定义了常量,在后续操作中它的值是不能被改变的,Python中没有真正意义上的常量,我们一般是将常量用全部大写字母表示,并且放在文件的最上面
    例1:

    APP_CODE=1000001
    

    注释

    注释的作用是对代码进行解释说明,我们应该尽可能的对复杂的内容进行注释,方便后期或别人进行理解
    单行注释使用井号(#)
    多行注释使用三引号(''')

    字符串的格式化

    用+号拼接

    注意:
    用加号进行拼接,不同类型的数据是不能进行拼接的,比如str和int
    例1:

    name = "Tom"
    age = "18"
    job = "IT"
    info = '''
    name: '''+ name +'''
    age: '''+ age +'''
    job: '''+ job +'''
    '''
    print(info)
    

    运行结果是:

    name: Tom
    age: 18
    job: IT
    

    %格式化字符串

    使用%进行格式化需要指定格式化的参数类型
    常用的类型有:

    格式 类型说明
    %s 字符串格式
    %d 整型格式(也可以用%i他们等价)
    %f 浮点数格式
    %.2f 带两个小数的浮点数格式(注意2前面有个点)
    %% 输出百分号,第一个%相当于转义符
    %c 单个字符(或者integer类型或者单个字符的字符串)
    name = "Tom"
    age = "18"
    job = "IT"
    info = '''
    name: %s
    age: %s
    job: %s
    ''' % (name, age, job)
    print(info)
    

    运行结果是:

    name: Tom
    age: 18
    job: IT
    

    format格式化字符串

    用format方式进行格式化在字符串中需要用大括号包含变量的方式进行占位

    按变量名方式传入
    按变量名方式传入无需按顺序,只要变量名对应即可
    例1:

    name = "Tom"
    age = 18
    job = "IT"
    info = '''
    name: {_name}
    age: {_age}
    job: {_job}
    ''' .format(_job=job,_name=name, _age=age)
    print(info)
    

    运行结果是:

    name: Tom
    age: 18
    job: IT
    

    按位置方式传入
    按位置方式传入,是用大括号包括序号的方式,取值是按在format后面参数的顺序取值
    例1:

    name = "Tom"
    age = 18
    job = "IT"
    info = '''
    name: {1}
    age: {2}
    job: {0}
    ''' .format(job, name, age)
    print(info)
    

    运行结果是:

    name: Tom
    age: 18
    job: IT
    

    input用户输入

    官方函数说明:

    input(prompt=None, /)
        Read a string from standard input.  The trailing newline is stripped.
        The prompt string, if given, is printed to standard output without a
        trailing newline before reading input.
        If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
        On *nix systems, readline is used if available.
    

    注意:
    input接受的全部是字符串

    prompt是提示符号,默认是一个None,我们这里输入什么,在运行的时候就提示什么
    例1:

    name = input("input your name:")
    print("你的名字是:", name)
    

    运行结果是:

    input your name:Tom
    你的名字是: Tom
    

    type判断变量的类型

    type(object_or_name, bases, dict)
    type(object) -> the object's type
    type(name, bases, dict) -> a new type

    if分支语句

    if分支语句有几种种形式

    if 结构

    if结构只能进行一次判断,符合后面的条件执行里面的代码块,不符合,跳过继续执行后面的语句
    例1:

    name = input("请输入你的名字:")
    if name == 'Tom':
        print("你好,{input_name}".format(input_name=name))
    print("good bye")
    

    运行结果:
    当输入的名字不是"Tom"时:

    请输入你的名字:Dave
    good bye
    

    当输入的名字是"Tom"时:

    请输入你的名字:Tom
    你好,Tom
    good bye
    

    if...else 结构

    if...else当条件符合时,执行if块里面的内容,不符合的时候执行else块里面的内容
    例1:

    name = input("请输入你的名字:")
    if name == 'Tom':
        print("你好,{input_name}".format(input_name=name))
    else:
        print("欢迎,{input_name}".format(input_name=name))
    print("good bye")
    

    运行结果:
    当输入的名字不是"Tom"时:

    请输入你的名字:Dave
    欢迎,Dave
    good bye
    

    当输入的名字是"Tom"时:

    请输入你的名字:Tom
    你好,Tom
    good bye
    

    if...elif...结构

    if...elif...可以进行多次判断,是if的扩展,符合某个条件执行某个条件块里面的内容,所有条件判断结束都不符合时,继续执行后面的内容
    例1:

    name = input("请输入你的名字:")
    if name == 'Tom':
        print("你好,{input_name}".format(input_name=name))
    elif name == "Jerry":
        print("欢迎,{input_name}".format(input_name=name))
    print("good bye")
    

    运行结果:
    当输入的名字不是"Tom"也不是"Jerry"时:

    请输入你的名字:Dave
    good bye
    

    当输入的名字是"Tom":

    请输入你的名字:Tom
    你好,Tom
    good bye
    

    当输入的名字是"Jerry":

    请输入你的名字:Jerry
    欢迎,Jerry
    good bye
    

    if...elif...else结构

    if...elif...else跟if...else类似只是多了几个判断而已
    例1:

    name = input("请输入你的名字:")
    if name == 'Tom':
        print("你好,{input_name}".format(input_name=name))
    elif name == "Jerry":
        print("欢迎,{input_name}".format(input_name=name))
    else:
        print("来啦,老弟")
    print("good bye")
    

    运行结果:
    当输入的名字不是"Tom"也不是"Jerry"时:

    请输入你的名字:Dave
    来啦,老弟
    good bye
    

    while 循环

    while循环常用于没有明确循环次数的场景
    语法:

    while 条件:
        循环体
    

    break跳出循环

    用break跳出循环,直接就结束了循环,不会执行后面的循环了
    例1:

    num, total = 1, 0       # 定义num初始值和total初始值
    while True:
        total += num
        num += 1
        if total == 5050:
            print('num的最终值是:', num)
            break
    print('total的值是:', total)
    

    运行结果是:

    num的最终值是: 101		# num为101是因为当num是100的时候total=5050,num还要继续+1,所以num是101
    total的值是: 5050
    

    continue跳过循环

    continue是跳过单次循环,继续后面的循环
    例1:找出100以内的所有奇数

    num = 0
    while num < 100:
        if num % 2 != 0:	# 当num是偶数的时候,先+1然后结束本次循环
            num += 1
            continue		# 结束本次循环,不执行后面的代码,回到num<100处继续执行
        num += 1
        print(num)
    

    结果是:

    1
    3
    5
    ......后面省略
    

    例2:

    flag = True
    while flag:
        print(111)
        print(123)
        flag = False
        continue
        print(456)
    

    运行结果:

    111
    123
    

    说明:
    运行结果没有打印出456,也只打印了一次111和123,说明在执行到continue的时候,返回到了while flag处进行了判断,在continue之前赋值了flag=False,while flag 判断为条件不满足,所以退出了循环

    while...else用法

    while...else在while正常执行完毕,没有break跳出循环,才会执行else里面的内容,否则不会执行
    注意:
    continue不影响else里面语句的输出

    例1:

    num = 0
    while num < 5:
        num += 1
        print(num, end='、 ')		# end是改变结束符,默认是换行符
        if num == 3:
            break
    else:
        print("while 正常结束")
    

    运行结果:

    1、 2、 3、			# 并没有打印else里面的内容
    

    例2:

    num = 0
    while num < 5:
        num += 1
        print(num, end='、 ')		# end是改变结束符,默认是换行符
    else:
        print("while 正常结束")
    

    运行结果:

    1、 2、 3、 4、 5、 while 正常结束			# else里面的内容打印了
    

    修改判断条件结束循环

    我们可再程序中修改while的条件,来结束循环
    例1:

    count = 0
    flag = True
    while flag:
        uname = input('用户名:')
        upwd = input('密码:')
        ucode = input('验证码:')
        if ucode == 'qwer':
            if uname == 'Tom' and upwd == '1234':
                print('登录成功')
                flag = False		# 正常应该跳到其他页面,这里用更改循环条件
            else:
                print('用户名或密码错误')
        else:
            print('验证码错误')
        count += 1
        if count == 3:				# 当尝试次数等于3时,改变循环条件结束循环
            print('尝试次数太多,程序结束')
            flag = False
    

    运行结果1:第二次输入正确情况

    用户名:aa
    密码:aa
    验证码:bb
    验证码错误
    用户名:Tom
    密码:1234
    验证码:qwer
    登录成功
    

    运行结果2:三次都不正确

    用户名:aaa			# 第一次尝试
    密码:aaa
    验证码:aaa
    验证码错误
    用户名:bbb			# 第二次尝试
    密码:bbb
    验证码:bbb
    验证码错误
    用户名:ccc			# 第三次尝试
    密码:ccc
    验证码:ccc
    验证码错误
    尝试次数太多,程序结束			# 利用改变循环条件退出循环
    

    for循环

    for循环用于执行有限次的循环,同样可以使用break和continue来跳出循环,当然也有for...else用法

    break 跳出循环

    例1:

    string1 = '我是一只小小鸟'
    for i in string1:
        if i == '一':
            break
        print(i)
    

    运行结果:

    我
    是
    

    continue 跳过循环

    例1:

    string1 = '我是一只小小鸟'
    for i in string1:
        if i == '一':
            continue
        print(i)
    

    运行结果:

    我
    是
    只
    小
    小
    鸟
    

    for...esle用法

    跟上面while...else一样,只有正常结束,没有break跳出的时候,才会执行else里面的语句
    注意:
    continue不影响else里面语句的输出

    例1:

    string1 = '我是一只小小鸟'
    for i in string1:
        if i == '一':
            continue
        print(i)
    else:
        print('for循环正常结束')
    

    运行结果:

    我
    是
    只
    小
    小
    鸟
    for循环正常结束
    

    实现三元运算

    Python是没有三元运算符的,但我们可以实现类似的三元运算
    例1:

    a, b, c = 1, 3, 8
    d = a if a > b else c		# 当a大于b,把a的值赋给d,否则把c的值赋给d
    print('d的值是:', d)
    

    运行结果是:

    d的值是:8
    

    以上代码等价于如下代码:

    a, b, c = 1, 3, 8
    if a > b:
        d = a
    else:
        d = c
    print('d的值是:', d)
    
  • 相关阅读:
    netstat命令的使用详情
    ps -ef | grep使用详解
    java反射
    Java中的类和类加载机制
    SpringMVC自定义视图 Excel视图和PDF视图(excel部分自己看过,pdf没接触过 )
    JS中!!的作用
    JSONObject没有fromObject方法及其依赖引入
    hdu 3507 Print Article(斜率优化)
    hrbust 2373 小C的问题
    poj 2104 K-th Number(可持久化线段树)/hdu 2665
  • 原文地址:https://www.cnblogs.com/zcf-blog/p/13184489.html
Copyright © 2011-2022 走看看