Loading

python基础1--入门语法

1、编码

1.1 编码基础

编码 简介
ASCII 英文及符号,8bit表示一内容,2**8=1byte
Unicode 万国码,32bit表示一内容,2**32=4byte
UTF-8 压缩的Unicode,8bit为一单位,省去高位0. 中文:3byte=24bit
GBK 支持简体中文和繁体中文,中文是2字节
GB2312 简体中文

1.2 python编码相关

对于Python默认解释器编码:

  • py2: ascii
  • py3: utf-8

如果想要修改默认编码,则可以使用:

# -*- coding:utf-8 -*- 
# coding=utf-8

注意:对于操作文件时,要按照:以什么编写写入,就要用什么编码去打开。

2、变量

2.1 变量的作用

为某个值创建一个“外号”,以后在使用时候通过此外号就可以直接调用。

2.2变量命名要求

  1. 变量名只能包含:字母/数字/下划线

  2. 数字不能开头

  3. 不能是python的关键字。

    [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’,‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’,‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’,‘yield’]

  4. 建议:

    1. 见名知意: name = "happier" age= 18

    2. 用下划线连接:my_age = "18"

    3. 补充:MyName= 'happier' (驼峰式命名)

      # 建议变量名不要用:str/int/list/tuple/set/dict/float
      

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "john"

以上实例,两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。

3、注释

  • 单行注释 #注释
  • 多行注释 """注释"""
  • 文件注释 文件开头"""内容"""

4、输入输出

4.1 语法格式

差别对比 输入 输出
python2 raw_input("输入") print "输出"
python3 input("输入") print("输出")

注意:input()获取的数据类型为字符串

4.2 字符串格式化

方式1:%后加元组

  • %s: 字符串占位符

    name = input('姓名:')
    do = input('在干什么:')
    template = "%s在家,%s。" %(name,do,)    #元组,建议最后加逗号
    print(template)
    
  • %d: 整形站位符

    template = "我是%s,年龄%d, 职业%s。" %("yhp",23,'dream',)
    print(template)
    
  • %%: 输出%

    template = "手机的电量是60%%" %()
    print(template)
    

方式2:%后加字典

msg = "我是%(n1)s,年龄%(n2)s" % {'n1': 'happier', 'n2': 29, }
print(msg)

方式3:format函数

v0 = "我是{},年龄{}".format('yhp',19)
v1 = "我是{0},年龄{1}".format('yhp',19)
v2 = "我是{0},年龄{1}".format(*('yhp',19,))
print(v0,v1,v2)

v3 = "我是{name},年龄{age}".format(name='yhp',age=18)
v4 = "我是{name},年龄{age}".format(**{'name':'yhp','age':18})
print(v3,v4)

5、运算符

a=10,b=20

5.1 算数运算符

运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2
% 取模 - 返回除法的余数 b % a 输出结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除 - 返回商的整数部分(向下取整 >>> 9//2 4 >>> -9//2 -5

5.2 比较运算符

== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
<> 不等于 - 比较两个对象是否不相等。python3 已废弃。 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

5.3 赋值运算符

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

5.4 逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

特殊情况:取值

  • or
"""
对于 or,如果有遇到 value= 1 or 9
第一个值如果是转换成布尔值如果是真,则value=第一值。
第一个值如果是转换成布尔值如果是假,则value=第二值。
如果有多个or条件,则从左到右依次进行上述流程。
示例:
v1 = 0 or 1
v2 = 8 or 10
v3 = 0 or 9 or 8
"""
  • and
"""对于and,如果遇到 value= 1 and 9 这种情况
如果第一个值转换成布尔值是True,则value=第二个值。
如果第一个值转换成布尔值是False,则value=第一个值。
如果有多个and条件,则从左到右依次进行上述流程。
示例:
v1 = 1 and 9
v2 = 1 and 0
v3 = 0 and 7
v4 = 0 and ""
v5 = 1 and 0 and 9
"""
  • 结合
# 先看and再看or
# v1 = 1 and 9 or 0 and 6
# print(v1)
  • 优先级

    在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为()>not>and>or,同一优先级从左往右计算。

5.5 成员运算

算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

5.6身份运算符

运算符 描述 实例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

注:id() 函数用于获取对象内存地址。

is 与 == 区别

is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

5.7 逗号运算符

  • a,b=b,a 交换两个值
  • a,b=取值

5.8 优先级

算数>比较>赋值>逻辑(not>and>or)

6、流程控制

6.1 if语句

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

6.2 三目运算

v = 前面  if 条件语句  else   后面
#如果条件成立,"前面"赋值给v,否则后面赋值给v.
v = a if a>b  else b  # 取a和b中值较大的赋值给v

# 让用户输入值,如果值是整数,则转换成整数,否则赋值为None

data = input('请输入值:')
value =  int(data) if data.isdecimal() else None 

7、while循环语句

7.1 格式

while 条件语句:
    执行语句
#打印1 2 3 4 5 6 8 9 10
count = 1
while count <= 10:
    if count == 7:
        pass
    else:
        print(count)
    count = count + 1

7.2 关键字break

作用:终止当前循环.

while True:
    print("你好")
    while True:
        print(666)
        break

7.3 关键字continue

本次循环遇到continue,则不再继续往下走,返回条件语句继续判断.

count = 0
while count <=9:
    count += 1
    if count==7:
        continue # 本次循环如果遇到continue,则不在继续往下走,而是回到while条件位置。
    print(count)

7.4 while else 结构

count = 1
while count < 10:
    print(count)
    count = count + 1
    # if count==7:
    #     break

else: # 不再满足while后的条件时才触发。break结束循环不触发
    print('ELSE代码块')
    print('结束')

8、for循环

8.1 格式

for iterating_var in sequence:
   statements(s)

8.2 使用方式1

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

for letter in 'Python':  # 第一个实例
    print('当前字母 :', letter)

fruits = ['banana', 'apple', 'mango']
for fruit in fruits:  # 第二个实例
    print('当前水果 :', fruit)

8.3 使用方式2

另外一种执行循环的遍历方式是通过索引

fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
    print('当前水果 :', fruits[index])
posted @ 2019-03-27 22:40  陌路麒麟  阅读(257)  评论(0编辑  收藏  举报