Python3.0学习基本语法·2

10、list列表写法以及输出

s=['弘福寺','卧龙寺','青龙寺','大兴善寺']
print(s)

列表里的数据又可以叫做元素,每个元素都有自己的位置,这个位置叫做索引。

print(s[0])      #打印列表s里面的第0个元素
print(s[3])      #打印列表s里面的第3个元素
print(s[-1])     #打印列表s里面的最后一个元素
print(s[-2])     #打印列表s里面的倒数第二个元素

s[0]指向列表里的第0个元素,使用print() 函数就可以把这个数据显示在屏幕上,让我们看到。
s[-1]代表的是列表中的最后一个元素,s[-2]代表列表中的倒数第二个元素。
从列表中取出某一段数据,即列表的子列表。

s=['弘福寺','大兴善寺','青龙寺','卧龙寺']
print(s[0:4])    
print(s[1:3])
print(s[1:])
print(s[:2])   

第3行代码:打印列表s里面的第0、1、2、3这几个元素。第4行代码:打印了列表s里面的第1、2这几个元素。
第6行代码:打印列表s里面的第1个和此之后的所有元素。第7行代码:打印列表s里面的第2个元素之前的所有元素。
从【:】左边的数字所代表的元素开始取,取到【:】右边的数字所代表元素的前一个元素为止。
这样取出来的数据还是列表。

补入一个数据,用append() 函数。
s=['弘福寺','大兴善寺','青龙寺','卧龙寺']       
s.append('观音禅寺')                        
print(s)  

列表的基本操作:生成列表,取出数据,追加数据。已经学完。


image.png

11、字典(dict)


image.png

d是这里的字典名,可以根据你的需要命名。
一一对应的两个数据分别叫【键】和【值】。键和值之间使用的是冒号,把一个键和值同下一个键和值分隔的是英文逗号。
字典不像列表,里面的数据没有位置(索引),但是我们只要知道了【键】,就可以把对应的【值】给取出来。
比如,你的上司问你,诶,青龙寺的面积是多少平米呢?你就可以这样操作:

d={'弘福寺':1000,'大兴善寺':900,'青龙寺':700,'卧龙寺':500}
print(d['青龙寺'])
b = {1:'布达佩斯',2:'伦敦',3:'巴黎'}
print(type(b))
print(len(b))

注意字典的长度是3,是键的个数,而不是键和值的总数6。

12、

d={1:['甲','乙','丙'],2:['A','B','C']}
#像这样,就是一个二级嵌套。在字典里,嵌套了列表。
a=d[1]
#提取出键1对应的列表['甲','乙','丙'],赋值给a。
b=a[0]
#提取出列表a的第0个元素,'甲',赋值给b。
print(b)
#打印b,获得'甲'。
print(d[1][0])
#直接从字典d中提取'甲'。

事实上,列表和字典可以多级嵌套使用。比如一个列表里嵌套一个字典,字典里再嵌套列表,列表里再嵌套字典……子子孙孙无穷匮也。当我们在提取这种多级嵌套的列表/字典时,要一层一层地取出来。举个例子↑↑↑
从下面的列表中,提取出来字符串'乙'。

list1 = [{1:'甲'},{2:'乙'},{3:'丙'}]
print(list1[1][2])

列表(list)里面只有值(value),而字典(dict)里面有的是一一对应的键(key)和值(value)。

13、for循环

a = [1,2,3]
for i in a:
    print(i)

也可以列表取值

s=['弘福寺','大兴善寺','青龙寺','卧龙寺','观音禅寺']
for i in s:    
    print('恭喜'+i+'入选译经道场')

字典取值

d={'弘福寺':1000,'大兴善寺':900,'青龙寺':700,'卧龙寺':500}
for i in d:
    print(i+'的面积是'+str(d[i])+“平方米”)

和for循环常常一起搭配使用的,还有range() 函数。

for i in range(3):
    print(i)

整数0,1,2显示在了终端上。所以range(t) 函数是可以生成一个0到t-1的整数序列。

for i in range(13,17):
    print(i)

range(a,b) 函数又生成了一个整数序列。range(13,17)中的13是循环变量开始的值,17是上限。
因为这里的 for 循环是为了执行3次循环,range(3)里面的3个整数会被一一取出来。至于每次执行print('我很棒')时,i 这个变量里面是什么东西,并不重要。
所以,range() 函数可以用来帮我们确定循环执行的次数。
range(t) 是可以生成从0—t-1的整数序列
range(a,b)可以生成a—b-1的整数序列

14、

#a、b、c分别代表广东甜食、四川甜食、江南甜食
广东=['榴莲酥','双皮奶','马拉糕','杨枝甘露']
四川=['红糖糍粑','冰粉','米花糖','蛋烘糕']
江南=['青团','桂花糕','酒酿圆子','糖芋苗']

#foodlist代表总的菜单
foodlist=[广东,四川,江南]

for i in foodlist: 
    print(i)

终端把三个列表的内容都打印出来了,第1行是列表广东里的数据,终端第2行是列表四川里的数据,终端第3行是列表江南里的数据。这是第一次的for循环取出的内容。

继续写,我们的目的是把这些食物一样一样地打印出来,然后询问夫人,那我们就必须继续取列表广东,四川,江南里面的值。

广东=['榴莲酥','双皮奶','马拉糕','杨枝甘露']
四川=['红糖糍粑','冰粉','米花糖','蛋烘糕']
江南=['青团','桂花糕','酒酿圆子','糖芋苗']
foodlist=[广东,四川,江南]
for i in foodlist:     
    for l in i:
        print(l)
        q = input('是你想吃的吗') 
        if q == '是':                      
            print('好哒,我明儿就去找人买')   
            exit() 
print('这里没有夫人爱吃的,我再去找别的甜食')  

15、函数function

def greet(name):
    print(name+'早上好')
greet('小龙人')

定义函数,然后调用函数,计算机才会理你。

def love():
    import time
    words = input('请输入一个代表你爱人的英文字母:')
    for i in words.split():
        print('\n'.join([''.join([(i[(x-y) % len(i)]
        if ((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (y * 0.1) ** 3 <= 0
        else ' ')
        for x in range(-30, 30)]) for y in range(12, -12, -1)]))
        time.sleep(1.5)
love()

def love(name):
import time
for i in words.split():
print('\n'.join([''.join([(i[(x-y) % len(i)]
if ((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (y * 0.1) ** 3 <= 0
else ' ')
for x in range(-30, 30)]) for y in range(12, -12, -1)]))
time.sleep(1.5)
words = input('请输入一个代表你爱人的英文字母:')
love(words)

16、
当变量处于被定义的函数内时,就是局部变量,只能在这个函数内被访问;当变量处于被定义的函数外时,就是全局变量,可以在程序中的任何位置被访问。
有一个模块叫random,是专门用来处理和随机相关的程序的。
刚刚已经讲过,模块里不止一种函数,我们只要选择适用的函数即可,在这里是random.choice() 。这些都是固定的写法,来看代码怎么写:

import random
import time

list = ['海绵宝宝','派大星','章鱼哥','蟹老板','素以相望','霖']       
a = random.choice(list)

print('开奖倒计时', 3)
time.sleep(1)       
print('开奖倒计时', 2)
time.sleep(1)
print('开奖倒计时', 1)
time.sleep(1)

print(image)
print('恭喜'+a+'中奖!')

import 某个模块会放在代码最开头,import代表引入。

17、Python给我们提供了一种异常处理的语句——try...except... 它可以在异常出现时即时捕获,然后内部消化掉,让程序继续运行。

num = [0,1,2,3]
for x in num:
    print (6/x)

第一位就是0,程序就报错。那么这时,你可以使用try…except语句来帮助你。就像这样:

num = [0,1,2,3]
for x in num:
    try:
    #尝试执行下列代码
        print (6/x)
        #使用6除以num中的元素,并输出
    except ZeroDivisionError:
    #除非发生ZeroDivisionError报错,执行下列代码:
        print('0是不能做除数的!')
        #打印“0是不能做除数的!”

如果你想省事,下面两个技巧能帮到你:
1.except后面什么也不跟,直接加冒号。意味着,只要报错就执行下面的代码,不管是什么错误类型。
2.报错后执行的代码,你也可以只写一个'pass','pass'的意思就是:什么都不做。'pass'的存在意义是占个位,维护格式完整。比如except语句后面要求你要执行点什么报错后的程序,但你又什么都不想执行,那就pass好了。

所以,请写一个无限循环的小程序,里面请用户输入整数,然后检测是否是整数,如果是整数就结束循环,不是的话,捕获错误并报错(打印--要输入整数噢)!

while 1:
    a=input('input a num:')
    try:
        if type(a)==int:
            break
    except ValueError:
        print('not num')
while True:
    try:
        a = int(input('请输入一个整数:'))
        break
    except ValueError:
        print('要输入整数噢')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容