zoukankan      html  css  js  c++  java
  • python基础第一章

    Python基础

    • 第一个python程序
    • 变量
    • 程序交互
    • 基本数据类型
    • 格式化输出
    • 基本运算符
    • 流程控制if...else...
    • 流程控制-循环

    第一个python程序

    文件执行

    1.用notepad++创建一个文件,输入以下代码:

    print('HelloWorld')
    print('python好简单啊,我要学好挣大钱!')
    

    2.保存为HelloWorld.py,注意要强调.py后缀名的作用
    3.进入 cmd命令行,执行python HelloWorld.py,看结果(在文件名前加python的原因是要把代码交给python解释器去解释执行)

    交互器执行

    python交互器就是主要用来对代码进行调试用的

    变量

    变量是什么?

    eat = 100+20+30
    cloth = 200+300
    print('total=',cloth+eat)
    

    所谓的变量,就是把程序运算的中间结果临时存放到内存里,以备后面的代码继续调用,用来标记数据,存储数据的

    变量定义规范

    声明变量

    name = 'xiaoyafei'
    

    其中name被称为“变量名/标识符”,'xiaoyafei'被称为“变量值”。

    变量定义规则

    • 变量只能是字母、数字、下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 关键字不能被称为变量名,如['and','as','class']

    定义方式

    驼峰体

    AgeOfXiao = 20
    NumberOfStudents = 56
    

    下划线

    age_of_Xiao = 20
    Number_of_Stundets = 56
    

    常量

    在程序运行过程中不会改变的量,在python中没有一种专门的语法来代表常量,但是约定俗成的变量名全部大写为常量,例如:

    AGE_OF_XIAO = 22        #这种就是常量
    

    程序交互

    读取用户输入

    name = input('what is your name?')
    print('Hello,'+name)
    

    在执行脚本的时候就会发现,程序会等待输入完name之后再往下继续走

    可以让多个用户输入多个信息,例如:

    name = input('what is your name?')
    age = input('what is your age?')
    hometown = input('what is your hometown?')
    print("hello",name,"your age:",age,"years old,you come from,",hometown)
    

    程序运行结果如下:

    what is your name?a
    what is your age?b
    what is your hometown?c
    hello a your age: b years old,you come from, c
    

    注释

    代码注释原则

    • 不用全部添加注释,只需要在自己觉得很重要或者不好理解的地方加注释即可
    • 注释可以用中文或英文,但不能用拼音

    数据类型

    在每个编程语言中,都会有一个叫数据类型的东西,其实就是对常用的各种数据类型进行了明确的划分,python数据类型有很多中,今天只讲3中:数字、字符串、布尔类型。

    数字

    int(整型)

    在32位机器上,整数的位数是32位,取值范围是-2 ** 31~2 ** 31-1

    在64位机器上,整数的位数是64位,取值范围是-2 ** 63~2 ** 63-1

    long(长整型)

    跟C语言不同,python的长整数没有指定位宽,即:python没有限制长整数的大小,但实际上机器内存有限,使用的长整数数值不可能无限大

    注意: 在python2.2起,如果整数发生溢出,python会自动将整数数据转换为长整数,所以如今在长整数数据后面不添加L也不会导致严重后果

    在python3中不会再有long类型的了,全部都是int

    >>> a = 2**64
    >>> type(a)
    输出结果为:class 'int'       #在python3终端上测试
    

    除了int和long,其实还有float浮点型、复数型

    字符串

    在python中,加了引号的字符都被陈志伟字符串

    >>> name = "xiaoyafei"  #双引号
    >>> age = '22'          #单引号
    >>> age2 = 22
    >>> 
    >>> msg = '''my name is xiaoyafei,i am 22 years old.'''     #多引号
    

    那么有人就会问了,单引号、双引号、多引号有什么区别?让我告诉你,单双引号没有什么区别,就是在下面的情况要考虑单双引号的搭配:

    >>> msg = "my name is xiaoyafei,I'm 22 years old."
    

    多引号什么作用呢?作用就是多行字符必须用多引号:

    >>> msg = '''
    ...     飞流直下三千尺,
    ...     疑是银河落九天。
    ... '''
    

    字符串拼接

    >>> name = 'xiaoyafei'
    >>> age = '22'
    >>> name + age      #相加就是简单的拼接
    'xiaoyafei22'
    >>> name * 10       #相乘即使复制自己多少次
    'xiaoyafeixiaoyafeixiaoyafeixiaoyafeixiaoyafeixiaoyafeixiaoyafeixiaoyafeixiaoyafeixiaoyafei'
    

    注意:字符串的拼接只能双方都是字符串,不能跟数字或者其他类型的进行拼接

    >>> name = 'xiaoyafei'
    >>> age = 10
    >>> type(name)
    <class 'str'>
    >>> type(age)
    <class 'int'>
    >>> name + age
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: must be str, not int     #类型必须是字符串
    

    布尔值

    布尔类型其实很简单,就两个值:True和Flase

    >>> a = 2
    >>> b = 5
    >>> a > b       #不成立就是Flase,即假
    False
    >>> a < b       #成立就是True,即真
    True
    

    格式化输出

    #-*- coding:utf-8 -*-
    name = input('Name:')
    age = input('Age:')
    addr = input('Addr:')
    
    info = '''
    --------------info of %s---------------
    Name    :%s     
    Age     :%s     
    Addr    :%s     
    '''%(name,name,age,addr)
    print(info)
    

    %s代表的是字符串占位符,除此紫外,还有%d数字占位符
    运行结果如下:

    Name:xiaoyafei
    Age:22
    Addr:HangZhou
    
    --------------info of xiaoyafei---------------
    Name    :xiaoyafei     
    Age     :22     
    Addr    :HangZhou  
    

    那么有问题来了,为什么数字用%s的话竟然没有报错呢?让我们来看看:

    >>> age = input('Age:')         #input接受的所有输入默认都是字符串格式
    Age:22
    >>> type(age)
    <class 'str'>
    

    如果想转换为整型的话,那么就需要使用[int(youStr)]

    基本数据类型

    计算机可以进行的运算有很多种,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天暂只学习算数运算、比较运算、逻辑运算、赋值运算

    算数运算

    设置一下变量:a=10,b=20

    那么:

    比较运算

    复制运算

    逻辑运算

    流程控制if...else...

    单分支

    if 条件:
        满足条件后执行的代码
    

    例如:

    xiaoyafei_age = 22
    if xiaoyafei_age<23:    #条件
        print('he is young')        #满足条件做的事情 
    

    运行结果:

    he is young
    

    双分支

    if 条件:
        满足条件后执行的代码
    else:
        if条件不满足才会执行的代码
    

    例如:

    xiaoyafei_age = 24
    if xiaoyafei_age<23:
        print('还是很年轻')
    else:
        print('不年轻了')
    

    运行结果如下:

    不年轻了
    

    多分支

    if 条件:
        满足条件执行代码
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个    
    else:
        上面所有的条件不满足就走这段
    

    写一个猜年龄的程序把:

    # -*- coding:utf-8 -*-
    xiaoyafei_age = 22
    guess = int(input('>>:'))
    
    if guess >xiaoyafei_age:
        print('猜大了,请往小的猜')
    elif guess < xiaoyafei_age:
        print('猜小了,请往大的猜')
    else:
        print('恭喜你猜对了!')
    

    再来个匹配成绩的代码吧,ABCDE5个等级,与分数对应关系如下:

    A 90-100

    B 80-89

    C 60-79

    D 40-59

    E 0-39
    要求用户输入0-100的数字后,能正确打印她的对应成绩:

    score = input('输入分数:')
    if score > 100:
        print('最高分才100')
    elif score >=90:
        print('A')
    elif score >=80:
        print('B')
    elif score >=70:
        print('C')
    elif socre >=60:
        print('D')
    else:
        print('E')
    

    这里有个问题,就是当我输入95的时候 ,它打印的结果是A,但是95 明明也大于第二个条件elif score >=80:呀, 为什么不打印B呢?这是因为代码是从上到下依次判断,只要满足一个,就不会再往下走啦,这一点一定要清楚呀!

    流程控制-循环

    while循环

    语法

    简单吧,while就是当的意思,while是指当其后面的条件成立,就执行while下面的代码

    写个程序从0打印100的程序,每循环一次,+1

    count = 0
    while count <= 100:         #只要count<=100,就不断执行下面的代码
        print('loop:',count)
        count += 1
    

    输出:

    loop: 0
    loop: 1
    loop: 2
    .....
    loop: 98
    loop: 99
    loop: 100
    

    那么我如果想实现打印1-100之内的偶数怎么办呢?

    那么就需要先搞清,怎么判断一个数字是偶数?能被2整除的数就是偶数,怎么能判断是否被2整除呢?只需要除完2没有余数就可以了。

    count = 0
    while count<=100:       #只要count<=100那么就会一直执行下去
        if count %2 == 0:       #是偶数
            print('loop:'count)
        count += 1      #每执行一次,就把count+1,要不然就变成死循环了,因为count一直都是0
    

    死循环

    有一种循环叫做死循环,一经触发,就运行个天荒地老、海枯石烂。

    while是只要后边条件成立(也就是条件结果为真)就一直执行,怎么让条件一直成立呢?

    count = 0
    while True:         #True本身就代表着真
        print('你是风儿我是沙,缠缠绵绵到天涯......',count)
        count +=1
    

    当然了,这是死循环,会将你的电脑的内存全部吃完然后死机,我可没有去执行,当然执行的朋友们可以使用[ctrl+c]结束

    循环终止语句

    如果在循环过程中,因为某些原因,你不想继续循环了,怎么把它终止掉呢?这就需要break和continue了。

    • break用于完全结束一个循环,跳出循环体执行循环后面的语句
    • continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全跳出循环

    break语句

    count = 0
    while count<=5:
        print('loop:',count)
        if count == 3:
            break
        count +=1
    print('out of while loop')
    

    运行结果如下:

    loop: 0
    loop: 1
    loop: 2
    loop: 3
    out of while loop
    

    coutinue语句

    count = 0
    while count<=10:
        count +=1
        if count>3 and count<8:     #表示在这里当count>3并且count<8的同时,不做任何操作
            continue
        print('loop:',count)
    
    print('game over')
    

    运行结果如下:

    loop: 1
    loop: 2
    loop: 3
    loop: 8
    loop: 9
    loop: 10
    loop: 11
    game over
    

    while...else...

    与其他语言else一般只与if搭配不同,在python中还有个while...else语句
    while后面的else作用是指,当while循环正常执行完,中间没有被break终止的话,就会执行else后面的语句

    count = 0
    while count<=5:
        count +=1
        print('loop:',count)
    else:
        print('循环正常执行完...')
    print('out of while loop')
    

    运行结果如下:

    loop: 1
    loop: 2
    loop: 3
    loop: 4
    loop: 5
    loop: 6
    循环正常执行完...
    out of while loop
    

    如果执行过程中,被break中断,就不会执行else语句

    count = 0
    while count <= 10:
        count +=1
        print('loop:',count)
        if count ==2:
            break
    else:
        print('程序被break中断')
    print('out of while loop')
    

    运行结果如下:

    loop: 1
    loop: 2
    out of while loop
    
  • 相关阅读:
    vs.net 2005, 没有找到MSVCR80D.dll的完美解决方案
    C++内存布局从一个修改私有变量的问题想到的
    堆栈详解
    加载.x文件
    深入分析规则引擎
    高级着色语言HLSL入门(5)
    字符数组,字符指针,Sizeof总结
    C++ 隐式和显式 初始化,类型转换
    fread()和fwrite()函数分析
    结构体 对齐的问题
  • 原文地址:https://www.cnblogs.com/xiaoyafei/p/8884218.html
Copyright © 2011-2022 走看看