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. 如果用户猜对了,可以在以下奖品中选择两件奖品(一次只能选择一件奖品):

  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('输入有误,请重新输入')
    
posted @ 2019-08-04 17:52  tomjoy  阅读(173)  评论(0编辑  收藏  举报