zoukankan      html  css  js  c++  java
  • Python基本数据类型、运算符、流程控制...

    五,Python基础(2)

    1.数据类型基础

    (一)什么是数据类型?

    用于区分变量值的不同类型。

    (二)为何对数据分类?

    针对不同状态就应该用不同类型的数据去标识。

    (三)数据类型分类

    1.数字类型

    1.1整型(int)

    1.11作用

    表示人的年龄、各种号码、级别

    1.12定义

    age = 24      # age=int(24)
    print(id(age))
    print(type(age))
    print(age)
    
    1982099648
    <class 'int'>
    24
    
    

    1.13如何用

    加减乘除、逻辑判断(大于、小于)

    print(a+b)
    print(a-b)
    print(a*b)
    print(a/b)
    .....
    

    1.2浮点型(float)

    1.21作用

    表示身高、体重、薪资

    1.22定义

    money = 2.5      # money=float(2.5)
    print(id(money))
    print(type(money))
    print(money)
    
    244287541632
    <class 'float'>
    2.5
    

    1.23如何用

    加减乘除、逻辑判断(大于、小于)

    2.字符串类型(str)

    2.1作用

    表示名字、性别、爱好等

    2.2定义

    name='sanpao'
    hobby='wanle'
    print(type(name1))
    print(name+hobby)
    

    2.3如何用

    字符串只能加、乘和逻辑比较

    不同数据类型不能拼接

    字符串的拼接,即重新申请一个小空间把两个字符串都拷贝再拼接

    3.列表类型(list)

    3.1作用

    例如存取一个人的爱好

    3.2定义

    在[]内用逗号隔开任意类型的值

    list=['name','height','weight','age']
    print(list)
    

    3.3如何用

    存不是目的,取才是目的

    list=['name','height','weight','age']
    # 索引序号 0      1        2       3
    #取出第三位
    print(list[2])
    

    4.字典类型(dict)

    4.1作用

    用来存取多个值,按照key : value的方式存值,取得时候可以通过key而非索引去取值,key对value具有描述性的作用,存放数据的种类,各种各样且数据较多的时候可以使用字典。

    4.2定义

    在{}内用逗号分割开多个元素,每一个元素都是key:value的格式,其中value是任意格式的数据类型,由于key具有描述性的作用,所以key通常是字符串类型

    dict={'name':'mahua','gender':'male','age':18,'power_info':['oldboy','shanghai','hongqiao']}
    

    4.3如何用

    字典取值方式不再依赖于索引,而是依赖于key,通过key即可获取对应value值。

    5.布尔类型(bool)

    5.1作用

    用于判断条件结果

    5.2定义

    true、false通常情况不会直接引用,需要使用逻辑运算得到结果。

    5.3如何用

    print(type(true))
    print(true)
    print(bool(1>2))
    print(bool(1==1))
    

    注意:Python中所有数据类型的值自带布尔值,如此多的数据类型中只需要记住只有0、None、空、False的布尔值为False,其余的为True.

    2.解压缩

    解压缩可以理解为我们去酒庄存了多瓶酒,然后我们到了时间把这些酒一次性全部取出来。

    name_list = ['mahua','guapi','shadiao','doubi']
    x,y,z,k=name_list
    print(f'x:{x},y:{y},z:{z},k:{k}')
    
    x:mahua,y:guapi,z:shadiao,k:doubi
    

    如果遇到一些我们不想要的酒,过期了,想丢掉的话,那么我们可以用下划线,无所不能的下划线

    name_list = ['mahua','guapi','shadiao','doubi']
    x,y,z,k=name_list
    x,_,z,_=name_list
    print(x,z)
    
    mahua shadiao
    

    还有一种方法就是添加一个星号*与下划线相乘可以代替一段连续的下划线,方便简洁。

    name_list = ['mahua','guapi','shadiao','doubi']
    x,y,z,k=name_list
    x,*_,k=name_list
    print(x,k)
    print(*_)
    
    mahua doubi
    guapi shadiao
    

    字典也是用来解压缩,但字典解压缩的是key

    dict={'name': 'mahua', 'age': 24}
    x, y=dict
    print(x, y)
    
    name age
    

    3.Python与用户交互

    一、为什么要交互?

    计算机的发明是为了奴役计算机,我们写程序就是用来跟计算机交互,不然我们写程序将毫无意义。

    二、如何交互?

    name=input('你的姓名:')
    print(name*10)
    
    name = input('请输入你的姓名')
    pwd = input('请输入你的密码')
    

    input作用只是接收值

    4.格式化输出的三种方式

    一、占位符

    %s(针对所有数据类型)、d%(仅仅针对数字类型)

    name='magua'
    age =24
    print('my name is %s my age is %s' % (name ,age))    (占位符)
    print('my age is %d' %(age))  
    
    name1='guapi'
    height=180
    print('my name is %s,my age is %s'%(name1,height))
    

    二、format格式

    name='magua'
    age=24
    print("hello {},you are {}.".format(name,age))
    

    三、f-string格式化

    name ='magua'
    age = 24
    print(f"hello,{name}.you are {age}.")  #大小写f都可以。
    

    5.基本运算符

    一、算术运算符:

    x=10
    y=20
    print(x+y)
    print(x-y)
    print(x*y)
    print(x/y)
    print(x%y)
    print(x//y)
    print(x**y)
    

    二、比较运算符:

    z=10
    k=20
    print(z<k)
    print(z>k)
    print(z>=k)
    print(z<=k)
    print(z==k)
    print(z!=k)
    

    三、赋值运算符:

    a=10       #(一元赋值运算符)
    b=20
    
    a += b  #相当于a=a+b   #二元赋值运算符
    print(a)
    b += 10
    print(b)
    a -= b
    print(a)
    a *= b
    print(a)
    a /= b
    print(a)
    a **= b
    print(a)
    a //= b
    print(a)
    a %= b
    print(a)
    

    四、逻辑运算符:

    # and
    print(True and True)   #  true #两个为真才能为真
    print(True and False)  #  false
    print(1<2 and 2>3)     # false
    
    # or
    print(True or False)   #true  有一个为真即为真
    print(False or False)  #false
    
    
    # not    # 非,不是。
    print(not False)       # true
    print(not True)       # false
    print(not 1>2)
    

    五、身份运算符:

    d=1000
    c=1002
    print(d is c)
    print(d is not c)
    print(not c is d)
    

    六,运算符优先级

    print(not c is d**2)     #建议加括号
    
    #True为1,False为0
    
    print(True>0)
    print(False<1)
    

    6.流程控制之if判断

    模拟人做判断

    1.if

    学什么都是为了让计算机向人一样工作,我们无时无刻都在判断。路边路过一个生物,你会判断两个人是不是会表白?首先会判断这个生物是不是人类,并且这个人类是个女人,年龄大于18小于20几岁。你首先需要记录一堆数据,然后才会用你的大脑去判断。if表示if成立代码成立会干什么。

    if 条件:
        代码1
        代码2
        代码3
        ...
    # 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
    
    cls = 'human'
    gender = 'female'
    age = 18
    
    if cls == 'human' and gender == 'female' and age > 16 and age < 22:
        print('开始表白')
    
    print('end...')
    

    2.if...else

    if 条件:
        代码1
        代码2
        代码3
        ...
    else:
        代码1
        代码2
        代码3
        ...
    

    if...else表示if成立代码成立会干什么,else不成立会干什么。

     light = "green"
     if light=='green':
        print('通过')
     else:
        print('等待')
    
    1. if...elif...else
    if 条件1:
        代码1
        代码2
        代码3
        ...
    elif 条件2:
        代码1
        代码2
        代码3
        ...
    elif 条件3:
        代码1
        代码2
        代码3
        ...
    ...
    else:
        代码1
        代码2
        代码3
        ...
    

    if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。

    age=input('your age:')
    age=int(age)
    if age>18:
        print('猜大了')
    elif age<18:
        print('猜小了')
    else:
        print('猜对了')
    

    4.if的嵌套

    给定一个年龄,判断他是否猜对或猜大猜下,然后该怎么做。

        age=18
        inp_age=int(input("age:"))
        if age <= inp_age:
            if age < inp_age:
                print('猜大了')
            else:
                print('猜对了')
                break
        else:
            print('猜小了')
    

    7.流程控制之while循环

    什么是循环呢?我们每天早上起床,上课,休息,每天都重复这几件事,这就是循环。

    while循环又称为条件循环。

    1.whil+break

    break的意识是终止掉当前层的循环,执行其他代码。

    while True:
        name = ('cxk')
        key  = ('rap')
        inp_user=input('请输入用户名:')
        inp_pwd=input('请输入密码:')
        if name == inp_user and key == inp_pwd:
            print('登陆成功')
            break        #跳出本层循环
        else:
            print('登陆失败')
    

    2.while+continue

    continue的意思是终止本次循环,直接进入下一次循环。

    n = 1
    while n < 4:
        print(n)
        n += 1
    
    n=1
    while n<10:
        if n == 5:
            n += 1
            continue  #跳出本次循环
        n += 1
        print(n)
    
    n=1
    while n<10:
        if n == 5:
            n += 1
            continue  #跳出本次循环
        n += 1
        print(n)
    

    continue不能加载循环体的最后一步执行的代码,因为代码加上去毫无意义,如图所示的continue所在的位置就是毫无意义的,注意是最后一步执行的代码,而不是最后一行。

    3.while循环的嵌套。

    #退出内层循环的while嵌套:
    while True:
        name = ('cxk')
        key  = ('123')
        inp_name=input('用户名:')
        inp_key =input('密码:')
        if inp_name==name and inp_key==key :
            print('登陆成功')
            while True:
                older=input('请输入指令')
                if older=='esc':
                    print('退出登录')
                    break
                else:
                    print('操作成功')
        else:
            print('登陆失败')
    
    #打印1-1000之间偶数之和
    n=1
    count=0
    while n<1001:
        if n%2==0:
            count+=n
        n+=1
    print(count)
    print((1+1000)*1000/2/2)
    
    #循环登陆,输入密码三次退出,
    
    count=0
    user_name=('cxk')
    pwd_key=(123)
    while count<3:
        name=input('账号:')
        key =int(input('密码:'))
        if name==user_name and key == pwd_key:
            print('登陆成功')
            break
        else:
            print('登陆失败')
            count+=1
    

    4.while+else

    n = 1
    while n < 3:
        print(n)
        n += 1
    else:
        print('else会在while没有被break时才会执行else中的代码')
    

    注意:else会在while没有被break时才会执行else中的代码

    while循环会进入死循环(不可控),尽量少使用

    世间万物(所有数据类型都可以)作为循环的对象。

    8.流程控制之for循环

    1.为什么有了while循环,还会有for循环呢?如果我们要从字典里取值,那我们只能用到for 循环了。

    dict = {'name':'cxk','age':98}
    for i in  dict:
    print(i)
    

    2.for循环的循环次数受限于容器类型的长度,且不会进入死循环,是可控的,而while循环的循环次数需要自己控制,for循环也可以按照索引取值。for循环只对容器类数字类型循环()

    for i in range(1,10):
    	print(i)
    

    3.for+break

    跳出本层循环

    for i in range(1,10):
    	if i==5:
    		break   #跳出本层循环
    	print(i)
    

    4.for+continue

    for i in range(1,10):
    	if i==6:
    		continue #跳出本次循环
    	print(i)
    

    5.for循环嵌套

    外层循环循环一次,内层循环循环所有。

    *打印九九乘法表

    for i in range(1,10):
        for j in range(1,10):
            k=i*j
            print(f'%d*%d=%d '%(i,j,k),end='')
            if i==j:
                break
        print()
    

    6.for+else

    for循环没有被break的时候触发else内部代码块。

    name_list=['cxk','magua','james']
    for i in name_list:
    	print(i)
    else	
    	print('over')	
    

    7.for循环实现loading.

    print("loading",end='')
    for i in range (6):
    	print('.',end='')
    
    

    9.Python基础实战之猜年龄游戏

    编写猜年龄游戏,有以下要求:

    1. 可能会有用户会在输入年龄之后不小心输入空格,如18   ,请做处理

    2. 可能会有用户会恶意输入导致程序报错,如逗你玩呀,请做处理

    3. 如果用户3次没有猜对,可以选择继续玩或退出(自定义退出条件)

    4. 如果用户猜对了,可以在以下奖品中选择两件奖品(一次只能选择一件奖品):{1:'辣条',2:'小猪佩奇',3:'蔡徐坤',4:'Python从删库到跑路'}

    5. 用户选择奖品后退出程序,用户也可以不选择奖品直接退出程序。

      age = 18
      count = 0
      liwu={1:'辣条',2:'小猪佩奇',3:'蔡徐坤',4:'Python从删库到跑路'}
      while count<3:
          age_1=input('请输入年龄:')
          if  not age_1.isdigit():
              continue
          age_1=int(age_1)
          if age==age_1:
              print('猜对了哦,真棒')
              print(f'请选择你的礼物(n放弃):',liwu)
              for i in range(2):
                  choice = input()
                  if choice=='n':
                      break
                  print(f'恭喜你获得了:,{liwu[int(choice)]}')
              break
          elif age_1<18:
              print('猜小了,继续努力')
          else:
              print('猜大了,继续努力')
          count+=1
          while count==3:
              keep=input('是否继续(Y继续,N退出)')
              if keep=='Y':
                  count=0
              elif keep=='N':
                  break
              else:
                  print('输入有误,请重新输入')
      
  • 相关阅读:
    T4模板+Web.config连接SqlServer+DBManage.cs+DbHelper.cs
    MVCApplication
    MVC路由(Route)
    过滤器+用session验证是否登陆过
    前台.cshtml得到session值方法
    C++ sort() method with 1.default operator,2 stand library compare ,3custom function,4,lambda expression
    C++ boost serialize struct to text
    C++ multi thread via pthread to retrieve returned result
    C++ pthread create and join
    C++ write and read file via fstream in ios::out,ios::in,ios::app mode
  • 原文地址:https://www.cnblogs.com/guapitomjoy/p/11299010.html
Copyright © 2011-2022 走看看