五,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('输入有误,请重新输入')

最新文章

  1. 图说js中的this——深入理解javascript中this指针
  2. VSS记住用户名和密码
  3. boost -- scoped_lock V.S. mutex lock/unlock —— why scoped_lock is recommanded?
  4. 关于 width;height
  5. webUploader上传组件 实际运用小结
  6. php 防止SQL注入函数
  7. html天气预报小插件
  8. linux学习笔记之sudo
  9. Java的构造器
  10. Axis1.4之定制发布服务
  11. Linux时间子系统之四:定时器的引擎:clock_event_device
  12. 树莓派 nfs server安装
  13. 解决sqoop连接mysq错误
  14. 14-01 Java matches类,Pattern类,matcher类
  15. my phone blackberry classic / passport / priv / keyone
  16. 《剑指offer》-数组中出现次数超过一半的数字
  17. (原)阅读Android-Camera2Video的demo源码和调试心得
  18. 阶段01Java基础day10面向对象05
  19. 正确理解web交互中的cookie与session
  20. Tensorflow的基本概念与常用函数

热门文章

  1. 超级实用的表格树控件--QtTreePropertyBrowser
  2. java获取Timestamp类型的当前系统时间
  3. Appium+python自动化(十三)- 与Capability完美懈垢之解读(超详解)
  4. Programming In Lua 第七章
  5. 每天学点node系列-http
  6. Hive入门(三)分桶
  7. scrapy基础知识之 关于爬虫部分一些建议:
  8. 剑指offer第二版-2.实现单例模式
  9. [HNOI2011]数学作业 题解
  10. [1045] PDOException in Connection.php line 295