Python基础(二):程序基本组成

Python程序基本组成

1.Python中的注释

  • 单行注释 使用#

  • 多行注释使用三个单引号或者三个双引号

    '''
    注释内容
    '''"""
    注释内容
    """

2.Python中的输出

print输出:

  • print语法形式 :print 表达式1,表达式2,表达式3,……,表达式n;使用“+”连接;可以使用反引号转译`

    注意:print 在对字符串使用 +号时是连接,在对数值使用+号时是加号执行的是加法运算

    输入:
    num1 = raw_input("请输入数字1:")
    num2 = raw_input("请输入数字2:")
    result = int(num1)+int(num2)
    intNum1 = int(num1)
    intNum2 = int(num2)
    print "字符串连接是:",num1+num2
    print "数值连接是:",intNum1+intNum2
    输出:
    请输入数字13
    请输入数字24
    字符串连接是: 34
    数值连接是: 7

    
    ## 直接都是字符串
    
    str1 = '罚抄'
    str2 = '3'
    str3 = '遍'
    print str1+str2+str3
    
    str1 = '罚抄'
    str2 = 3
    str3 = '遍'
    
    ##使用反引号转义
    
    print str1+`str2`+str3
    
    ##使用string方法进行数据类型转换
    
    print str1+str(str2)+str3
  • 格式化输出:print “提示字符 格式化 提示话” 常用的 %s %d %f ;占位符宽度可以指定;

    print "%[-][number][.number][s,d,f]"%("variable")

    示例如下:

    
    #1.字符串占位符 %s
    
    print "His name is %s"%"jack"
    
    #2.整数占位符 %d
    
    print "He is %d years old"%20
    
    #3.浮点占位符 %f
    
    print "His weight is %f kg"%180.2
    print "His weight is %.3f kg"%180.2
    
    #4.指定占位符宽度 通过%[-左对齐][数值指定宽度]s
    
    print "Name:%10s Age:%8d Height:%8.2f"%("jack",25,183)
    
    #使用左对齐 “-”打印格式统一好看
    
    
    #  print "%[-][number][.number][s,d,f]"%("variable")
    
    print "Name:%-10s Age:%-8d Height:%-8.2f"%("jackoqdfa",25,183)
    print "Name:%-10s Age:%-8d Height:%-8.2f"%("jacsafk",25,183)
    print "Name:%-10s Age:%-8d Height:%-8.2f"%("jasdddsack",25,183)
    print "Name:%-10s Age:%-8d Height:%-8.2f"%("zxck",25,183)

    输出内容:

    His name is jack
    He is 20 years old
    His weight is 180.200000 kg
    His weight is 180.200 kg
    Name:      jack Age:      25 Height:  183.00
    Name:jackoqdfa  Age:25       Height:183.00  
    Name:jacsafk    Age:25       Height:183.00  
    Name:jasdddsack Age:25       Height:183.00  
    Name:zxck       Age:25       Height:183.00  
  • print3打印必须是带括号print()

format():让格式输出更清晰

print "{0} is {1} years old".format("jack",20)
print "{1} is {0} years old".format(20,"jack")
输出:
jack is 20 years old
jack is 20 years old
输入:
boy  = ["jack",20]
girl = ["Miki",18]
print "{0[0]} is {0[1]} years old,{1[0]} is {1[1]} years old ".format(boy,girl)
输出:
jack is 20 years old,Miki is 18 years old

进阶设置占位符大小和居中:

#设置格式化,把三个变量指定宽度
"{:20}\t{:28}\t{:32}".format("asdfa","asdf","sds")
#设置格式化,把三个变量指定宽度,并设置为居中
"{:^20}\t{:^28}\t{:^32}".format("asdfa","asdf","sds")

3.Python中的输入

raw_input()输入使用:

*得到的是字符串

input():读取一个合法的python表达式:只进行数学计算时可以使用。否者用raw_input();

num3 = input("10+5:")
print(type(num3))
print(num3)
输出:
10+5:10+5
<type 'int'>
15

在Python3中input()接收字符串类型了;所以一般用raw_input();

4.Python容器数据类型

List,Tuple,Dictionary,Set 四个;

1.列表–List []

列表可以存储多个不同类型的数据

  1. 列表创建:一个简单创建,一个通过list(xxx)来进行创建,对字符串创建非常有效;

    list1 = ['h','e','l','l','o']
    print list1
    list2 = list('hello')
    print list2
  2. 列表访问:1.使用index访问:list[index]

    list[0]
  3. 更新列表:list.append(xxx) 只能追加一个对象

    list1.append(5)
  4. 删除列表:

    • del list[index] 删除某一个;
    • del list[index1:index2] 删除一个区间【index1~index2】的数据;
    • del list 删除整个list列表,在内存中释放;
    • del list[:] 清空整个list数据
    del list4[:] #清空列表内容 或者 del list4[0:len(list4)]
    print list4
    输出:[]
  5. 列表脚本操作符

    • len([1,2,3])

    • [1,2,3]+[4,5,6]

      输出:[1,2,3,4,5,6]
    • ['Hi!']*4 对string类型也可以 :'hello'*4;'2'*4

      分别输出:
      ['Hi!', 'Hi!', 'Hi!', 'Hi!']
      hellohellohellohello
      2222
    • 3 in [1,2,3] 输出bool:True

  6. 多维数据读取:list[0][0]

    list[[1,2,3],[4,5],[6,[7,8]],[9]]
    print list[2][1][1]
  7. 列表索引,切片list[-2:]

2.元组–Tuple ()

与列表类似,元组的元素不能修改; 变量名 = ();只有一个值的元组要有一个逗号

  1. 创建元组:

    tup1 = (1,2,'abc') #直接括起来
    tup2 = 'a','b','c',1  #不用括号直接创建元组 极端时可以是 a = "a", 这个后面有个逗号也是元组
    
    #通过tuple() 函数把某种数据转换为元组
    
    tup3 = tuple('hello')
    tup4 = tuple([1,2,3])
    tup5 = tuple((4,5,6))
  2. 访问元组:

    • 使用下表访问某一个元素tup1[index];使用切片方式访问一个区间元素tup1[index1:index2]
    • 格式化输出用到的也是元组:
    print "小张今年%d岁,是个耿直%s"%(20,'boy')
  3. 修改元组:元组内容不可以修改,但是可以元组组合 tup1+tup2;连接操作;

  4. 删除元组:元组中的元素不允许删除,但可以用del语句删除整个元组;

    del tup1
    print tup1
    输出:NameError: name 'tup1' is not defined 
  5. 元组运算符:

    • 迭代:

      ​ 存在中文乱码问题及其解决python2:

      tup1 = ('duan','jin','张三','李四',1,2)
      print tup1  #输出会出现转码问题
      输出:
      ('duan', 'jin', '\xe5\xbc\xa0\xe4\xb8\x89', '\xe6\x9d\x8e\xe5\x9b\x9b', 1, 2)
      
      #解决办法
      
      
      #1.通过json自带方法
      
      import json
      print json.dumps(tup1).decode("unicode-escape")
      输出:
      ["duan", "jin", "张三", "李四", 1, 2]

    • 连接:+

      (1, 2, 3) + (4, 5, 6)  ---> (1, 2, 3, 4, 5, 6)
    • len()

    • 3 in (1, 2, 3)判断是否存在一个元素

  6. 元组的索引,截取 tuple[:2],tuple[-3:],tuple[:-1]

3.字典–Dictionary {}

字典形式:{key:value,key1:value1} 键是唯一必须的,值则不必;键可以值字符串,数值,元组;值是任意类型

  1. 创建字典

    字典无序读取效率高。list是顺序读取,数据量多的时候读取效率低

    
    # 1.建立一个空字典,再赋值
    
    dict1 = {}
    dict1['age'] = 20 #和列表赋值写法一样 都是方括号写;不可以通过dict1{'age'} 这个是不合法的
    print dict1
    
    # 2.键值对直接创建
    
    person = {'name':'qiwsir','language':'python','name':'yuwen'}
    person['name2'] = 'qiwsir2'
    print person #顺序发现随机
    
    # 3.通过dict()把元组变为字典
    
    tup1 = (['name1','baidu'],['name2','google']) # 元组必须是键值对形式
    website = dict(tup1) 
    print website
    
    # 4.
    
    dict4 = ('name'='value',''='')
    
    # 5. fromkeys() 方式
    
    dict5 = {}.fromkeys(('first','seconde'),'facebook')
  2. 读取操作:dict1['name']

  3. 更改操作:dict1['name'] = 'new_value'

  4. 删除操作:del 注意:访问清空过得,不存在的元素会报错

    del dict1['name'] # 删除一个元素
    dict1.clear()  # 清空操作
    del dict1 # 删除字典本身

4.集合–Set

一个无序且不重复的元素集合。

1.创建集合

# 1.字符串变为集合
set1 = set('hello')
# 2.列表变为集合
list1 = [1, 2, 3, 4]
set2 = set(list1)
# 3.字典变为集合 ;set3里面变成了他的key值
dict1 = {'n1': 1, 'n2': '2', 'n3': [3, 4]}
set3 = set(dict1)
# 4.直接写
set4 = {'k1', 'k2', 'k3'}

2.集合操作:主要是集合的交并补集等

# 比较:
se = {11, 22, 33}
be = {22, 55}
temp1 = se.difference(be) # 找出se中存在,be中不存在的数据
temp2 = se.difference_update(be) #找到se中存在,be中不存在的集合,覆盖掉se
tem1 = se.intersection(be) # 取交集
se.intersection_update(be) # 取交集并更新自己
# t
se.isdisjoint(be) # 是否存在交集
se.issubset(be) # 是不是子集
se.issuperset(be) # 是不是父集
se.symmetric_difference_update(be) # 合并不同项
se.update(be) # 合并原值,覆盖

3.集合删除:discard() ,remove(),pop()

discard() 移除不存在元素不会报错; remove() 移除不存在元素会报错;pop()移除末尾元素并返回
set3 = set({31, 32, 33})
set3.discard(11)
set3.discard(44)
set4 = set({41, 42, 43})
set4.remove(41)
set4.remove(44) # 移除不存在会报错
set5 = set({51, 52, 53})
temp3 = set5.pop()

5.Python中的运算符

1.算术运算符:

+ - * / % ** //

2.比较运算符:

==
!=
>
<
>=
<=

3.赋值运算符

=
+=
-=
*=
/=

4.逻辑运算符

and  x and y  # 数字不为零就是true
or   x  or y
not  not x 

5.位运算符

按位运算符是把数字看作二进制来进行计算的。

运算符 描述 实例
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移动
>> 右移动

实例:

a = 60   #60 = 0011 1100
b = 13   #13 = 0000 1101
c = a & b#12 = 0000 1100

进制转换:

bin() # 十进制转二进制
oct() # 十进制转八进制
hex() # 十进制转十六进制

6.成员运算符: in,not in

为了获取bool值运行

7.身份运算符: is, is not

身份运算符用于比较两个对象的存储单元,id()函数用于获取对象内存地址。

a is b 判断相当于 id(a) == id(b)

总结:运算符优先级

指数>按位运算>算术>逻辑>and 等等

8.时间和日期

time 和datetime

猜你喜欢

转载自blog.csdn.net/u010700066/article/details/80819005