Python基础

作者: 小漫画ing | 来源:发表于2018-11-18 16:52 被阅读0次

    数据类型和变量

    1.整数

    2.浮点数

    3.字符串

    当字符串中既包含''又包含""时,我们可以使用转义字符\来标识:

    print("I\'m \"OK\"!")
    
    运行结果

    4.布尔值

    (1)布尔值我们都知道只有True、False两种值,在这里同样也是(注意大小写):

    print(3>5)
    
    运行结果
    print(3<5)
    
    运行结果
    print(not True)//这是单目运算符
    
    运行结果

    (2)布尔值经常用在条件判断中:

    age=12;
    if age >=18:
        print("成年人")
    else:
        print("少年")
    
    运行结果

    空值

    空值是None,他不能理解为0,是一个特殊的空值。

    变量

    变量不仅可以是数字,还可以是任意数据类型。

    a=1
    t_007='T007'
    

    常量

    (1)除法:

    print(10/3)
    
    运行结果

    (2)还有一种除法是//,称为地板除:

    print(10//3)
    
    运行结果

    (3)取余

    print(10%3)
    
    运行结果

    字符串

    1、获取字符的整数表示,这里提供了一个ord()函数

    print(ord('A'))
    
    运行结果

    2、转换为对应的字符,这里提供了chr()函数

    print(chr(66))
    
    运行结果

    使用list和tuple

    list

    1、取元素的操作
    list我们大家在学习java的时候都知道,她是集合,可以进行删除和添加的一个集合。

    classmates=["Michael","Bob","Tracy","Java"]
    print(classmates)
    
    运行结果

    变量classmates就是一个list。用len()函数可以获得list元素的个数

    print(len(classmates))
    
    运行结果

    接下来我们取一下元素,这里和java几乎是类似的。

    print(classmates[0])
    
    运行结果
    有时候我们想取最后一个元素的时候可能会写错,因为可能不清楚集合的长度,取错值,这时候,我们取最后一个元素的时候,可以用使用-1做索引。
    print(classmates[-1])
    
    运行结果

    以此类推。
    2、往集合中追加元素

    classmates.append("Jane")
    print(classmates)
    
    运行结果

    将元素追加到指定的位置

    classmates.insert(1,"Jack")
    print(classmates)
    
    运行结果

    3、删除元素
    删除末尾的元素:

    classmates.pop()
    print(classmates)
    
    运行结果

    删除指定位置的元素

    classmates.pop(1)
    print(classmates)
    
    运行结果

    4、修改某一个位置上的值

    classmates[1]="Sarah"
    print(classmates)
    
    运行结果

    5、list里面的元素的数据类型也可以不同。

    L=["Apple",123,True]
    print(L)
    
    运行结果

    tuple

    我们会发现,刚才的集合的括号是中括号,这里是圆括号。这样就可以区别list集合和tuple集合了。

    classmates=("Michael","Bob","Tracy")
    print(classmates[1])
    
    运行结果

    当你需要定义一个空的tuple时,可以写成()

    t=();
    print(t)
    
    运行结果

    条件判断

    和java一样,判断都是用if,只是函数不一样。

    age=20
    if age>=18:
        print("你的年龄是",age)
        print("成年人")
    else:
        print("你的年龄是",age)
        print("少年")
    
    运行结果
    注意别忘了写
    当然上面的判断是粗糙的,更加细致一点的话,就是elif的判断:
    age = 3
    if age >= 18:
        print('adult')
    elif age >= 6:
        print('teenager')
    else:
        print('kid')
    

    elif是else if 的缩写,完全可以有多个elif,所以if语句的完整形式就是:

    if <条件判断1>:
        <执行1>
    elif <条件判断2>:
        <执行2>
    elif <条件判断3>:
        <执行3>
    else:
        <执行4>
    

    if 的判断条件还可以简写,比如:

    x=10;
    if x:
        print("True")
    

    只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。

    再来看input

    如果我们读取用户的输入,使用input()来获取

    birth=input('birth:')
    if birth<2000:
        print("00前")
    else:
        print("00后")
    
    运行结果

    真惊喜,哈哈哈,报错了这是因为input()返回的数据类型是string,string不能直接和整数比较,必须先把string转换为整数。python提供了int()函数来完成这件事情:

    birth=input('birth:')
    s=int(birth)
    if s<2000:
        print("00前")
    else:
        print("00后")
    
    运行结果

    练习题:
    小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:

    低于18.5:过轻
    18.5-25:正常
    25-28:过重
    28-32:肥胖
    高于32:严重肥胖
    用if-elif判断并打印结果:

    weight=input('weight:')
    we=int(weight)
    if we<18.2:
        print("过轻")
    elif 18.5<=we<25:
        print("正常")
    elif 25<=we<28:
        print("过重")
    elif 28<=we<32:
        print("肥胖")
    else:
        print("严重肥胖")
    
    运行结果

    循环

    我们之前做过,如果直接要计算1+2+3,我们可以直接写表达式:

    print(1+2+3)
    

    这样就好了。但是如果是从1加到10000呢,直接写表达式是不可能的,所以这时候,我们就可能会用到循环了。在python里面的循环有两种,一种是for...in 循环,依次把list或tuple中的每个元素迭代出来,看例子:

    names=['Bob','Danny','Alisa','Tacy']
    for name in names :
        print(name)
    
    运行结果

    通过这个可以把集合里面的元素遍历出来。
    in后面的是循环,把循环出来的东西给for前面的变量。比如上面的列子,就是把集合里面的东西拿出来给name,最后打印出来。
    可是如果要计算1到10的整数之和呢?可以用sum做累加:

    sum=0;
    for x in [1,2,3,4,5,6,7,8,9,10]:
        sum=sum+x
        print(sum)
    
    运行结果

    1到10还是比较好输入的,可是数字再大一点呢?这时候python就为我们提供了一个range()函数,他可以生成一个整数序列,再通过list()函数转换为list,比如:

    print(list(range(5)))
    
    运行结果

    range(101)就可以生成0-100的整数序列,计算如下:

    sum=0;
    for x in range(101):
        sum=sum+x;
    print(sum);
    
    运行结果

    break

    break语句可以提前退出循环。

    n=1
    while n<=100:
        if n>10:#当n=11时,条件满足,执行break语句
            break#break语句会结束当前循环
        print(n)
        n=n+1
    print("nj")
    
    运行结果

    continue

    和java中一样,是跳过当前的这次循环,直接开始下一次循环。

    n=0;
    while n<10:
       n=n+1;
       if n%2==0:
        continue
       print(n)
    
    运行结果

    dict

    python内置了字典:dict的支持,dict全称dictionary,其实就是map,使用键值存储,这样可以快速的查找。

    names={'Michael':95,'Bob':52,'Tracy':12}
    print(names['Michael'])
    
    运行结果
    这样查找就会特别快!如果key不存在,dict就会报错。
    为了避免key不存在的错误,有两种办法,第一种是:
    通过in判断key是否存在:
    names={'Michael':95,'Bob':52,'Tracy':12}
    print('Michael' in names)
    
    运行结果
    这个结果说明这个元素的的key是存在的。
    第二种方式是:
    通过dict里面提供的get()方法,如果key不存在,可以返回None,或者指定的value:
    names={'Michael':95,'Bob':52,'Tracy':12}
    print(names.get('Michael'))
    
    运行结果
    names={'Michael':95,'Bob':52,'Tracy':12}
    print(names.get('Michael',-1))
    
    运行结果

    因为我这里写的key是存在的,所以会输出相对应的value,如果不存在的话,第一个输出的应该是None,第二个输出的应该是-1;
    当然删除一个元素的key也是可以的,用的还是pop()的方法,对应的元素也会从中删除:

    names={'Michael':95,'Bob':52,'Tracy':12}
    names.pop('Michael')
    print(names)
    
    运行结果

    当然,因为dict查找是通过key值查找的,所以这里的key必须是不可变的对象,这样就不会混乱了,这种通过key计算位置的算法称为哈希算法;

    set

    set和dict是类似,都是key的集合,但不存储value。因为key不可以重复,所以,同样,在set里面没有重复的key。如果里面有重复的元素,是可以自动被过滤掉的。

    s=set([1,2,2,3,5,3])
    print(s)
    
    运行结果

    因为用的是list作为输入集合,所以是可以修改的,添加用的是add():

    s=set([1,2,2,3,5,3])
    s.add(4)
    print(s)
    
    运行结果

    删除用的是remove():

    s=set([1,2,2,3,5,3])
    s.add(4)
    s.remove(1)
    print(s)
    
    运行结果

    因为set是集合,所以在这里是可以取交集和并集等操作:

    s1=set([1,2,3])
    s2=set([1,4,5,6])
    print(s1&s2)
    print(s1|s2)
    
    运行结果

    相关文章

      网友评论

        本文标题:Python基础

        本文链接:https://www.haomeiwen.com/subject/kiwmxqtx.html