python学习-02

#1. 迭代器 iter()
    限制:不能向后移动
         不能回到开始
         无法复制一个迭代器
    要重新进行迭代只能再重新生成一个新的迭代器对象

   python中for循环就是用的迭代器,因此 for 能对序列进行迭代

    使用:
   a = [1,2,3,4]
   a = iter(a)
   a.next()   

#2. 字典 dict{}
    a = {}   建立一个空的字典    
    字典里元素的格式: {'key1':'value1',"key2":"value2",......}
       key值不能重复,如果有重复的key值,以从左到右最后出现的那个为准
       key值不能更改,但是value值可以更改
       一个key值对应一个 value 值 如果有重复的,后面的会把前面的覆盖掉

  adict.keys() 返回一个包含字典所有KEY的列表;
  adict.values() 返回一个包含字典所有value的列表;
  adict.items() 返回一个包含所有(键,值)元祖的列表;
  adict.clear() 删除字典中的所有项或元素;
  adict.copy() 返回一个字典浅拷贝的副本;
  adict.fromkeys(seq, val=None)  创建并返回一个新字典,以seq中的元素做该字典的键,
                                 val做该字典中所有键对应的初始值(默认为None);
  adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,
                                                                            则返回default的值(default默认为None);
  adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;
  adict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,
                                                                                                                                 不同的是它们返回一个迭代子,而不是一个列表;
  adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;
                                                            如果key不存在,且没有给出default的值,则引发keyerror异常;
  adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,
                                                                                     由 adict[key] = default 为它赋值;
  adict.update(bdict) 将字典bdict的键值对添加到字典adict中

 用字典实现case语句功能,进行四则运算
 --------------------------------------------------------
  #!/usr/bin/python
  #coding=utf-8

  from __future__ import division
  a = input("请输入一个数字:")
  b = input("请输入一个数字:")
  c = raw_input("请选择要进行的运算(+ - * /):")

  d = {'+':a+b,'-':a-b,'*':a*b,'/':a/b}

  if c in d.keys():
          print "%s%s%s =" %(a,c,b),d[c]
  else :
          print "没有这种操作"  
 ---------------------------------------------------------


#3.

    continue    ##跳出本次循环
    break       ##跳出当前循环
    pass        ##什么都不做



#4. 函数 def


 你可以定义一个由自己想要功能的函数,以下是简单的规则:

    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
    任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    函数内容以冒号起始,并且缩进。
  return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

 示例:
 def fun():
     print 1+1

  函数的调用直接使用函数名就行

   函数的参数:
            1>必备参数
            2>关键字参数
        def fun(x):
            print x
        标准调用: fun(3)   fun('haha')
        关键字调用:fun(x='hello')

            3>默认参数
        def fun(x,y=1):
            print x+y
        调用:  fun(1)   fun(1,2)
        有缺省值的参数要写在没有缺省值参数的后面

            4>不定长参数
                传入的参数个数不一定,在参数前面加一个 * 号,在函数内部,参数 a 接收到的是一个 元组(tuple),
        因此调用该函数时,可以传入任意个参数
         def fun(*a):
                   s=0
                   for n in a:
                           s = s + n
                   print s
          
           调用 :  fun(1,2,3,4)
 
    函数的返回值:
        函数可以返回一个值:
                return f
        也可以返回多个值:
                return a,b,c
            python函数返回多个值时,其实是返回一个元组,在语法上,返回一个元组可以省略括号


#5.单引号,双引号,三引号

在python中  单引号('...'),双引号("..."),三引号("""...""")都能用来表示字符串,他们的区别在下面:
1.只有三引号包含的字符串可以由多行组成,而不用加换行符,表示大段的叙述性字符串
2.三引号,双引号可以包含单引号,三引号可以包含双引号,换而言之,在三引号内,双引号与单引号都可以正常输出,而不用转义,
   在双引号内,单引号也可以正常输出.不用转义

例子:
要输出 it`s yours  时  可以用双引号直接输出,而用单引号,就必须要对 ` 进行转义
要输出  I love "hello world" 时  就可以用三引号,而用单引号或者双引号,就必须对 "" 进行转义



脚本:

  ------------------------------------
  #!/usr/bin/env python
  #coding=utf-8

  a = []
  count = input("您要输入几组姓名:")

  print "请依次输入%d组姓名,按如下格式:\n\t姓,名\n" %(count)
  i = 0
  j = 0
  while 1:
          if i == count :
                  break
          else :
                  name = raw_input("请输入姓名:")
          if ","  not in name or  "," == name[0] or "," == name[-1] or name.count(',') != 1:
                  print "您的输入有误,请按照正确格式重新输入。"
                  j += 1
          else :
                  i += 1
                  a.append(name)
                  print "输入成功!"
 
  a.sort()
  print "\n您输错了%d次\n" %(j)
  print  "最终输入结果为:"
  for i in range(0,count):
          print a[i]
  ----------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,很高兴为您解答。在学习Cartopy制图的第二步中,我们将探索如何在地图上添加标记和注释。 首先,我们需要导入Cartopy和Matplotlib的相关库: ``` import cartopy.crs as ccrs import matplotlib.pyplot as plt ``` 接下来,我们将创建一个带有注释和标记的地图。这里我们以美国为例: ``` # 创建一个以美国为中心的地图 ax = plt.axes(projection=ccrs.PlateCarree()) ax.set_extent([-130, -60, 20, 50], crs=ccrs.PlateCarree()) # 添加州边界线 states_provinces = cfeature.NaturalEarthFeature( category='cultural', name='admin_1_states_provinces_lines', scale='50m', facecolor='none') ax.add_feature(states_provinces, edgecolor='gray') # 添加湖泊和河流 lakes = cfeature.NaturalEarthFeature( category='physical', name='lakes', scale='50m', facecolor='none') ax.add_feature(lakes, edgecolor='blue') rivers = cfeature.NaturalEarthFeature( category='physical', name='rivers_lake_centerlines', scale='50m', facecolor='none') ax.add_feature(rivers, edgecolor='blue') # 添加城市标记 ax.plot(-75, 40, 'bo', markersize=7, transform=ccrs.PlateCarree()) ax.text(-75.5, 40.5, 'New York', transform=ccrs.PlateCarree()) # 添加注释 ax.text(-129, 22, 'USA', horizontalalignment='left', transform=ccrs.Geodetic()) ax.text(-100, 25, 'Great Lakes', horizontalalignment='center', transform=ccrs.PlateCarree()) ax.text(-98, 37, 'Mississippi River', horizontalalignment='center', transform=ccrs.PlateCarree()) plt.show() ``` 这段代码会绘制一个以美国为中心的地图,同时添加州边界线、湖泊和河流的标记和注释。其中,城市标记是以蓝色圆点的形式添加的,注释则是以文本的形式添加的。 这就是在Cartopy制图中添加标记和注释的基本方法。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值