目录
1、将字符串转换为数字
2、把这个字符串以16进制的方式转成10进制
4、当前数字的二进制,至少用n位表示
while循环" >三、for和while循环
首页 后端开发 Python教程 python学习基础基本数据类型介绍

python学习基础基本数据类型介绍

Mar 21, 2017 am 10:28 AM
python

一、 运算符

1、算数运算:

python学习基础基本数据类型介绍

ps:

示例1:

python2.7示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

#算数运算符
from future import division   #python2.x必须引入division模块。python3.x不需要。

val = 9 / 2
print(val)
登录后复制

执行结果:

1 4.5
登录后复制
登录后复制


python3.x示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

#算数运算符
val = 9 / 2
print(val)
登录后复制

执行结果:

1 4.5
登录后复制
登录后复制

2、比较运算:

python学习基础基本数据类型介绍

ps:

1 a = 1 > 5
登录后复制


3、赋值运算:

python学习基础基本数据类型介绍

ps;

1 a = a + 1    a+=1
登录后复制


ps:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

start = 1
start = start + 1  #加 减乘 除 一样
print(start)
登录后复制

执行结果:

1 2
登录后复制
登录后复制


4、逻辑运算:

python学习基础基本数据类型介绍

ps:

1 a = 1>6 or 1==1
登录后复制


示例

>>> a = 0
>>> if a:print('a')
...

>>> a = 1
>>> if a:print('a')
...
a

>>> False
False
或
>>> True
True
登录后复制

5、成员运算

python学习基础基本数据类型介绍

ps:

in 的示例:

指的是这个SB是不是在上面那个字符串中,在就返回Ture

方法一:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

name = "郑建文"
if "建文" in name:
    print('ok')
else:
    print('Error')
登录后复制

执行结果:

1 ok
登录后复制

方法二:

#!/usr/bin/env python
# -*- coding:utf-8 -*-      
#Author: nulige
 
#成员运算符
s = "ALex SB"
ret = "SB" in s    #指的是这个SB是不是在上面那个字符串中,在就返回True
print(ret)
登录后复制

执行结果:

1 True
登录后复制
登录后复制

示例三:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

#成员运算符
s = "ALex SB"
ret = "RSB" in s   #指的是这个RSB是不是在上面那个字符串中,如果不在就返回False
print(ret)
登录后复制

执行结果:

1 False
登录后复制
登录后复制


not in示例

示例一:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

name = "郑建文"
if "文1" not in name:
    print('1')
else:
    print ('2')
登录后复制

执行结果:

1 1
登录后复制


示例二:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

#粒度大
li = ['alex','eric','rain']
ret = "alex" not in li    #在里面就是False,不在里面就是Ture
print(ret)
登录后复制

执行结果:

1 False
登录后复制
登录后复制


6、三元运算

1 result =值1 if 条件 else 值2
登录后复制

如果条件为真:result =值1

如果条件为假 :sesult =值2

示例

>>> a,b,c = 1,3,5
>>> d =a if a >b else c
>>> d
5
>>> d = a if a <b else c
>>> d
1
>>> if a >b:d=a
... else:d=c
...
登录后复制

7、身份运算

python学习基础基本数据类型介绍

8、位运算

python学习基础基本数据类型介绍

#!/usr/bin/python
  
a = 60            # 60 = 0011 1100
b = 13            # 13 = 0000 1101
c = 0
  
c = a & b;        # 12 = 0000 1100
print "Line 1 - Value of c is ", c
  
c = a | b;        # 61 = 0011 1101
print "Line 2 - Value of c is ", c
  
c = a ^ b;        # 49 = 0011 0001
print "Line 3 - Value of c is ", c
  
c = ~a;           # -61 = 1100 0011
print "Line 4 - Value of c is ", c
  
c = a << 2;       # 240 = 1111 0000
print "Line 5 - Value of c is ", c
  
c = a >> 2;       # 15 = 0000 1111
print "Line 6 - Value of c is ", c
登录后复制

九、运算符优先级

python学习基础基本数据类型介绍

十、bytes类型

Python3中内置类型bytes和str用法及byte和string之间各种编码转换
Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然).

bytes to string 字符类型转换

python学习基础基本数据类型介绍

python学习基础基本数据类型介绍

说明:字符串转(string)转成bytes类型,再转成string。

示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: huzhihua

#import login
msg = "我爱北京天安门"
print(msg)
print(msg.encode(encoding="utf-8"))
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))
登录后复制

执行结果:

我爱北京天安门
b&#39;\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8&#39;
我爱北京天安门
登录后复制

十一、进制

16位数表示方法

python学习基础基本数据类型介绍

16进制与二进制对应关系

python学习基础基本数据类型介绍

进制转换成十六进制的方法:取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位

python学习基础基本数据类型介绍

图1

组分好以后,对照二进制与十六进制数的对应表(如图1中所示),将四位二进制按权相加,得到的数就是一位十六进制数,然后按顺序排列,小数点的位置不变哦,最后得到的就是十六进制数哦,如图2所示。

python学习基础基本数据类型介绍

图2

注意16进制的表示法,用字母H后缀表示,比如BH就表示16进制数11;也可以用0X前缀表示,比如0X23就是16进制的23.直观表示法如图3所示。

python学习基础基本数据类型介绍

图3

这里需要注意的是,在向左(或向右)取四位时,取到最高位(最低位)如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算,如图4所示。

python学习基础基本数据类型介绍

图4

下面看看将16进制转为二进制,反过来啦,方法就是一分四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧就可以啦。如图5所示。

python学习基础基本数据类型介绍

图5


十一、一切皆对象

对于Python,一切事物都是对象,对象基于类创建

python学习基础基本数据类型介绍

所以,以下这些值都是对象: "wupeiqi"、38、['北京', '上海', '深圳'],并且是根据不同的类生成的对象。

python学习基础基本数据类型介绍


二、基本数据类型

1、数字:1231

ps:

age = 18

2、int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647,而.在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

ps:

数字  int ,所有的功能,都放在int里 
a1 = 123 
a1 = 456
登录后复制

1、将字符串转换为数字

#!/usr/bin/env python
# -*- coding:utf-8 -*-      
#Author: nulige
 
a = "123"
print(type(a),a)  #输出他是什么类型,并转换为数字

b = int(a)
print(type(b),b)  #输出他是什么类型,并转换为数字
登录后复制

执行结果:

(<type &#39;str&#39;>, &#39;123&#39;)
(<type &#39;int&#39;>, 123)
登录后复制

2、把这个字符串以16进制的方式转成10进制

#!/usr/bin/env python
# -*- coding:utf-8 -*-      
#Author: nulige

#二进制表示方法:
#00   10    11    #二进制
#1     2     3    #十进制
#把这个字符串以16进制的方式,转成10进制
num = "0011"   #字符串
int(num)
v = int(num, base=2)    #base=2  以二进制的方式进行
v = int(num, base=16)   #base=16 就是转成16进制
print(v)
登录后复制

执行结果:

1 17
登录后复制

3、将16进制转成10进制

#!/usr/bin/env python
# -*- coding:utf-8 -*-      
#Author: nulige

#把b以16进制的方式转成10进制
num = "b"
v = int(num,base=16)
print(v)
登录后复制

执行结果:

1 11
登录后复制

常识:

1个字节=8位

1个汉字=3个字节

gb2312=2汉字

utf-8=3汉字(表示:最少3个汉字)

4、当前数字的二进制,至少用n位表示

#当前数字的二进制,至少用n位表示
age = 5
# 1  1     #表示二进制,用几位表示
# 2  10
# 3  11
# 4  100
# 5  101
r = age.bit_length()
print(r)
登录后复制

执行结果:

1 3  #表示位数
登录后复制

2、字符串:

表示方法:

  a1 = "asdf" #第一种 “”

  a1 = ‘ffa’ #第二种‘’

  a1 ="""assdfafdsafdas""" #第三种“““ ”””

1、首字母大写:capitalize()

#!/usr/bin/env python
# -*- coding:utf-8 -*-      
#Author: nulige

#首字母大写
test = "aLex"
v = test.capitalize()   #首字母大写
print(v)
登录后复制

执行结果:

1 Alex
登录后复制

2、功能:所有变小写

二者对比:casefold更牛逼,很多未知的对相应变小写

#!/usr/bin/env python
# -*- coding:utf-8 -*-      
#Author: nulige

#所有变小写,casefold更牛逼,很多未知的对相应变小写
test = "aLex"
v1 = test.casefold()
print(v1)
v2 = test.lower()
print(v2)
登录后复制

执行结果:

1 alex2 alex
登录后复制


3、设置宽度并将内容居中

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

# 3、设置宽度并将内容居中
# 20代指总长度
# * 代表空白未知填充 ,一个字符,可有可无
a1 = "alex"
ret = a1.center(20, &#39;*&#39;)
print(ret)
登录后复制

执行结果:

1 ********alex********
登录后复制


4、去字符串中寻找,寻找子序列出现的次数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

# 去字符串中寻找,寻找子序列出现的次数
a1 = "alex is alph"
ret = a1.count("a")
ret = a1.count("al",0,10)
print(ret)
登录后复制

执行结果:

1 2
登录后复制
登录后复制

5、查看是否已什么结尾

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

# 查看是否已什么结尾
# 查看是否已什么开始
name = "xiaoMing"
v = name.endswith(&#39;g&#39;)
v1 = name.startswith(&#39;e&#39;)
print(v)
print(v1)
登录后复制

执行结果:

1 True2 False
登录后复制

6、从开始往后面找,找到第一个之后,获取其位置,未找到返回一个-1

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

# 6、从开始往后面找,找到第一个之后,获取其位置,未找到返回一个-1
name = "xiaoming"
v = name.find(&#39;ao&#39;,2,6)#从那个位置开始找  前面的是大于等于 后面是小于
# print(v)
name = "xiaoming"   #index 用法同find 但是如果index找不大值直接报错
v = name.index("ming")
print(v)
登录后复制

执行结果:

1 4
登录后复制


7、格式化输出,将一个字符串中的占位符替换为指定的值

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

#格式化输出,将一个字符串中的占位符替换为指定的值
test = &#39;i am  {name},age {a}&#39;
print(test)
v = test.format(name = &#39;xiaoming&#39;,a = 24)
print(v)
test = &#39;i am  {0},age {1}&#39;
print(test)
v = test.format(&#39;xiaoming&#39;,24)
print(v)
登录后复制

执行结果:

i am  {name},age {a}
i am  xiaoming,age 24
i am  {0},age {1}
i am  xiaoming,age 24
登录后复制
登录后复制


9、test.format_map的方法类似format 区别如下图

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

#test.format_map的方法类似format 区别如下图
test = &#39;i am  {name},age {a}&#39;
print(test)
v = test.format(name = &#39;xiaoming&#39;,a = 24)
v1 = test.format_map({"name":"xiaoming","a":19})
print(v)
print(v1)
登录后复制

执行结果:

i am  {name},age {a}
i am  xiaoming,age 24
i am  {0},age {1}
i am  xiaoming,age 24
登录后复制
登录后复制


9、判段字符串中是否只包含字母和数字

name = "uuuuaa888"
v = name.isalnum()
print(v)
登录后复制


执行结果:

1 True
登录后复制
登录后复制


10、expandtabs,断句20,\t表示六个字符,不够的空格补齐6个。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

#expandtabs,断句20,\t表示六个字符,不够的空格补齐6个。
test = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"
v = test.expandtabs(20)
print(v)
登录后复制

执行结果:

username            email               password
laiying             ying@q.com          123
laiying             ying@q.com          123
laiying             ying@q.com          123
登录后复制


3、long(长整型)

为什么会有这个概念呢?

因为在Python2.2起,如果放置在内存里的数特别大发生溢出,Python就会自动将整型数据转换为长整型,但是现在,在Python3里就不存在长整型这么一说了,同意都是整型。

4、float浮点型

简单理解就是带有小数的数字

5、complex(复数)

复数是由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y呢是复数的虚数部分,这里的x和y都是实数。

5、布尔值(0或1)

就是真和假。

True/False

a4 = True #真

a5 = False #假

7、查看数据类型(type)

>>> type(1) 
<class &#39;int&#39;> 
>>> type(1.2) 
<class &#39;float&#39;> 
>>> type(jixuege) 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
NameError: name &#39;jixuege&#39; is not defined

上面报错原因就是没有用双引号引起来,他就不是字符串,而是认为是一个变量。 
>>> type("jixuege") 
<class &#39;str&#39;>
登录后复制


三、for和while循环

这里呢就需要涉及到breakcontinue的区别了。

如何理解呢?

break: 只能跳出当前循环,当前这一套循环就结束了。

continue: 跳出当次循环,然后呢还会去继续下一次别的循环。

for循环示例1:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

for i in range(10):
    print("loop",i)
登录后复制

执行结果:

loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
loop 7
loop 8
loop 9
登录后复制


原理图:

python学习基础基本数据类型介绍

for循环示例2:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

for i in range(0,10,2):
    print("loop",i)
登录后复制


执行结果:

loop 0
loop 2
loop 4
loop 6
loop 8
登录后复制


原理图:

python学习基础基本数据类型介绍

for循环示例3:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

for i in range(0,10,3):
    print("loop",i)
登录后复制

执行结果:

loop 0
loop 3
loop 6
loop 9
登录后复制

for循环示例4:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

age_of_oldboy = 56
count = 0

while count <3:
    guess_age = int(input("guess age:"))
    if guess_age == age_of_oldboy :
        print("yes, you got it. ")
        break
    elif guess_age > age_of_oldboy:
        print("think smaller... ")
    else:
        print("think bigger!")
    count +=1
    if count == 3:
        countine_confirm = input("do you want to keep guessing..?")
        if countine_confirm != &#39;n&#39;:
            count = 0
else:
    print("you have tried too many times..fuck off")
登录后复制

执行结果:

输入三次数字,按回车就继续,按n 就退出

guess age:1
think bigger!
guess age:23
think bigger!
guess age:3
think bigger!
do you want to keep guessing..?
guess age:1
think bigger!
guess age:2
think bigger!
guess age:3
think bigger!
do you want to keep guessing..?n
you have tried too many times..fuck off
登录后复制

原理:

python学习基础基本数据类型介绍

for循环示例5:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

age_of_oldboy = 56
for i in range(3):
    guess_age = int(input("guess age:"))
    if guess_age == age_of_oldboy :
        print("yes, you got it. ")
        break
    elif guess_age > age_of_oldboy:
        print("think smaller... ")
    else:
        print("think bigger!")
else:
    print("you have tried too many times..fuck off")
登录后复制

执行结果:

guess age:23
think bigger!
guess age:58
think smaller... 
guess age:56
yes, you got it.
登录后复制


原理图:

python学习基础基本数据类型介绍

for循环示例6:

说明:打印五次hehe...

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

for i in range(0,10):
    if i <5:
        print("loop ",i)
    else:
        continue
    print("hehe...")
登录后复制

执行结果:

loop  0
hehe...
loop  1
hehe...
loop  2
hehe...
loop  3
hehe...
loop  4
hehe...
登录后复制


for循环示例7:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

for i in range(10):
    print(&#39;-------------&#39;,i)
    for j in range(10):
        print(j)
登录后复制

执行结果:

------------- 0
0
1
2
3
4
5
6
7
8
9
------------- 1
0
1
2
3
4
5
6
7
8
9
------------- 2
0
1
2
3
4
5
6
7
8
9
------------- 3
0
1
2
3
4
5
6
7
8
9
------------- 4
0
1
2
3
4
5
6
7
8
9
------------- 5
0
1
2
3
4
5
6
7
8
9
------------- 6
0
1
2
3
4
5
6
7
8
9
------------- 7
0
1
2
3
4
5
6
7
8
9
------------- 8
0
1
2
3
4
5
6
7
8
9
------------- 9
0
1
2
3
4
5
6
7
8
9

Process finished with exit code 0
登录后复制


PyCharm代码调试

python学习基础基本数据类型介绍

break和continue的区别

示例1:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige

for i in range(10):
    print(&#39;-------------&#39;,i)
    for j in range(10):
        print(j)
        if j>5:
            break
登录后复制

执行结果:

------------- 0
0
1
2
3
4
5
6
------------- 1
0
1
2
3
4
5
6
------------- 2
0
1
2
3
4
5
6
------------- 3
0
1
2
3
4
5
6
------------- 4
0
1
2
3
4
5
6
------------- 5
0
1
2
3
4
5
6
------------- 6
0
1
2
3
4
5
6
------------- 7
0
1
2
3
4
5
6
------------- 8
0
1
2
3
4
5
6
------------- 9
0
1
2
3
4
5
6
登录后复制

示例2:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Author: nulige


for n in range(4):
    print(n)
    for j in range(3):
        if  j <2:
        #如果j小于2就跳出当次循环,继续一下次循环
            continue
        print(n,j)
登录后复制

执行结果:


0 2
1 2
2 2
3 2
登录后复制


说明:

在第二次的if判断中,我执行条件,如果j小于2就跳出当次循环,继续一下次循环

下面我们就看看break的使用

同样的代码,咋们接着看

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Author: nulige


for n in range(4):
    print(n)
    break
    for j in range(3):
        if  j <2:
        #如果j小于2就跳出当次循环,继续一下次循环
            continue
        print(n,j)
登录后复制

0

小结:二者的区别,continue用于有很多次循环,然后呢,我不希望哪次循环执行下面的动作,就可以了使用continue ,而break呢就是我这次循环了以后我想跳出去不在循环,或者我写了一段代码,我想跳出去看看代码是否能执行,就可以用break。

作业一:编写登录接口

  • 输入用户名密码

  • 认证成功后显示欢迎信息

  • 输错三次后锁定

流程图

python学习基础基本数据类型介绍

实现代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige


count = 0
while count < 3:
    login = &#39;&#39;&#39;
Hello welcome to login Cnlogs!
    &#39;&#39;&#39;
    login2 = &#39;&#39;&#39;
Try again
    &#39;&#39;&#39;
    if count == 0:
        print(login)
    else:
        print(login2)
    user = input("please input your name:")
    password = input("please input your password:")
    accept = str(user + password)
    for line in open("C:\\Users\\Administrator\\Desktop\\file.txt"):
        line = line.strip("\n")
        if accept == line:
            print("Welcome to login Cnlogs",user)
            exit()
            break
        else:
            continue
    print("Your password or username is wrong")
    count +=1
    if  count == 3:
        print("fuck off")
登录后复制


file文件路径
登录后复制


file文件路径:C:\\Users\\Administrator\\Desktop\\file.txt"
登录后复制


file文件内容
登录后复制
nulige123456
alex123456

#说明(把输入的用户名和密码,拼接为一个字符串。)
#username:nulige
#password:123456
登录后复制


执行结果:

说明:输入正确用户名和密码。比对正确,显示欢迎信息。

Hello welcome to login Cnlogs!
    
please input your name:nulige
please input your password:123456
Welcome to login Cnlogs nulige
登录后复制

说明:输入三次错误的用户名和密码,第三次还错误就锁定。

Hello welcome to login Cnlogs!
    
please input your name:huzhihua
please input your password:11111
Your password or username is wrong

Try again
    
please input your name:skfjdskfjdsk
please input your password:321321
Your password or username is wrong

Try again
    
please input your name:fdskfjsk
please input your password:3333
Your password or username is wrong
fuck off
登录后复制

三、思路和遇到的坑。

1、把正确的用户名密码,存放在一个文本文件中。

2、用户名与密码,是两个独立的字符串,存放的时候把它俩加在一起,变成了“用户名密码”。

3、获取输入的用户名密码后,同样把用户名与密码拼接为“用户名密码”,来与文件中记录的用户名密码进行逐行对比。

4、坑!记录的文件中有换行符\n,也就是说“用户名密码\n”,但是输入的却没有“用户名密码”,导致字符串效验总是失败。

5、通过strip("\n")来去掉换行符。


python strip()函数 去空格\n\r\t函数的用法

在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数:

strip 同时去掉左右两边的空格
lstrip 去掉左边的空格
rstrip 去掉右边的空格

具体示例如下:
>>>a=" gho stwwl "
>>>a.lstrip() 'gho stwwl '
>>>a.rstrip() ' gho stwwl'
>>>a.strip() 'gho stwwl'

声明:s为字符串,rm为要删除的字符序列
s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符

注意:
1. 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')

>>> a = ' 123'
>>> a.strip()
'123'
>>> a='\t\tabc'
'abc'
>>> a = 'sdff\r\n'
>>> a.strip()
'sdff'

2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

>>> a = '123abc'
>>> a.strip('21')
'3abc' 结果是一样的
>>> a.strip('12')
'3abc'

作业二:多级菜单

  • 三级菜单

  • 可依次选择进入各子菜单

  • 所需新知识点:列表,字典

menu = {
    &#39;北京&#39;:{
        &#39;海淀&#39;:{
            &#39;五道口&#39;:{
                &#39;soho&#39;:{},
                &#39;网易&#39;:{},
                &#39;google&#39;:{}
            },
            &#39;中关村&#39;:{
                &#39;爱奇艺&#39;:{},
                &#39;汽车之家&#39;:{},
                &#39;youku&#39;:{},
            },
            &#39;上地&#39;:{
                &#39;百度&#39;:{},
            },
        },
        &#39;昌平&#39;:{
            &#39;沙河&#39;:{
                &#39;老男孩&#39;:{},
                &#39;北航&#39;:{},
            },
            &#39;天通苑&#39;:{},
            &#39;回龙观&#39;:{},
        },
        &#39;朝阳&#39;:{},
        &#39;东城&#39;:{},
    },
    &#39;上海&#39;:{
        &#39;闵行&#39;:{
            "人民广场":{
                &#39;炸鸡店&#39;:{}
            }
        },
        &#39;闸北&#39;:{
            &#39;火车战&#39;:{
                &#39;携程&#39;:{}
            }
        },
        &#39;浦东&#39;:{},
    },
    &#39;山东&#39;:{},
}


exit_flag = False
current_layer = menu

layers = [menu]

while not  exit_flag:
    for k in current_layer:
        print(k)
    choice = input(">>:").strip()
    if choice == "b":
        current_layer = layers[-1]
        #print("change to laster", current_layer)
        layers.pop()
    elif choice not  in current_layer:continue
    else:
        layers.append(current_layer)
        current_layer = current_layer[choice]
登录后复制


以上是python学习基础基本数据类型介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
PHP和Python:解释了不同的范例 PHP和Python:解释了不同的范例 Apr 18, 2025 am 12:26 AM

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

在PHP和Python之间进行选择:指南 在PHP和Python之间进行选择:指南 Apr 18, 2025 am 12:24 AM

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

sublime怎么运行代码python sublime怎么运行代码python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中运行 Python 代码,需先安装 Python 插件,再创建 .py 文件并编写代码,最后按 Ctrl B 运行代码,输出会在控制台中显示。

Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

PHP和Python:深入了解他们的历史 PHP和Python:深入了解他们的历史 Apr 18, 2025 am 12:25 AM

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

Golang vs. Python:性能和可伸缩性 Golang vs. Python:性能和可伸缩性 Apr 19, 2025 am 12:18 AM

Golang在性能和可扩展性方面优于Python。1)Golang的编译型特性和高效并发模型使其在高并发场景下表现出色。2)Python作为解释型语言,执行速度较慢,但通过工具如Cython可优化性能。

vscode在哪写代码 vscode在哪写代码 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中编写代码简单易行,只需安装 VSCode、创建项目、选择语言、创建文件、编写代码、保存并运行即可。VSCode 的优点包括跨平台、免费开源、强大功能、扩展丰富,以及轻量快速。

notepad 怎么运行python notepad 怎么运行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中运行 Python 代码需要安装 Python 可执行文件和 NppExec 插件。安装 Python 并为其添加 PATH 后,在 NppExec 插件中配置命令为“python”、参数为“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通过快捷键“F6”运行 Python 代码。

See all articles