跳至主要內容

02.语言元素

Zhao Bin笔记backendpython

02.语言元素

变量和类型

常用的数据类型:

  • 整型
    Python 2.x 中有 intlong,Python 3.x 中只有 int
    支持二进制(0b100,十进制 4),八进制(0o100,十进制 64),十六进制(0x100,十进制 256)
  • 浮点型
    浮点数除了支持数学写法,如 123.456,还支持科学计数法,如 1.23456e2
  • 字符串型
    以单引号或双引号括起来的任意文本,比如 'hello'"hello"
  • 布尔型
    布尔值只有 TrueFalse,注意大小写。
  • 复数型
    形如 3+5j,跟数学上的复数一样,只不过是虚部的 i 换成了 j

变量命名

  • 硬性规则
    • 变量由字母,数字和下划线构成,数字不能开头。
    • 大小写敏感
    • 不要跟关键字,保留字冲突
  • PEP 8 要求
    • 小写字母拼写,下划线连接
    • 受保护的实例属性用单个下划线开头
    • 私有的实例属性用两个下划线开头

变量的使用

在 Python 中可以使用 type 函数对变量的类型进行检查。

a = 100
b = 12.345
c = 1 + 5j
d = 'hello, world'
e = True

print(type(a))  # <class 'int'>
print(type(b))  # <class 'float'>
print(type(c))  # <class 'complex'>
print(type(d))  # <class 'str'>
print(type(e))  # <class 'bool'>

试一试:

python day-01-15/day-02/var-type.py

可以使用 Python 中的内置函数对变量类型进行变换。

  • int() 将一个数值或字符串转换成正数,可以指定进制。
  • float() 将一个字符串转换成浮点数。
  • str() 将指定的对象转换成字符串形式,可以指定编码。
  • chr() 将整数转换成该编码对应的字符串(一个字符)。
  • ord() 将字符串(一个字符)转换成对应的编码(整数)

下面的代码通过键盘输入两个整数来实现对两个整数的算术运算。

a = int(input('a = '))
b = int(input('b = '))

print('%d + %d = %d' % (a, b, a + b))
print('%d - %d = %d' % (a, b, a - b))
print('%d * %d = %d' % (a, b, a * b))
print('%d / %d = %f' % (a, b, a / b))
print('%d // %d = %d' % (a, b, a // b))
print('%d %% %d = %d' % (a, b, a % b))
print('%d ** %d = %f' % (a, b, a ** b))

试一试:

python day-01-15/day-02/calc.py

运算符

Python 支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符。

运算符描述
[] [:]下标,切片
**指数
~ + -按位取反,正负号
* / % //乘,除,摸,整除
+ -加,减
>> <<右移,左移
&按位与
^ |按位异或,按位或
<= < > >=小于等于,小于,大于,大于等于
== !=等于,不等于
is is not身份运算符
in not in成员运算符
not or and逻辑运算符
+= -=a +=b 等价于 a = a + b

练习

华氏温度转换为摄氏温度

提示

华氏温度到摄氏温度的转换公式为:C=(F32)÷1.8C=(F - 32) \div 1.8

'''
华氏温度转换为摄氏温度
'''

f = float(input('请输入华氏温度:'))
c = (f - 12) / 1.8
print('%.1f华氏度 = %.1f摄氏度' % (f, c))

在使用 print 函数输出时,也可以对字符串内容进行格式化处理。
上面的 print 函数中的字符串 %.1f 是一个占位符,稍后会由一个 float 变量替换它。
同理, %s 由字符串替换,%d 用整数变量替换。

除了这种格式化字符串的方式外,还可以用下面的方式来格式化字符串,其中 {f:.1f}{c:.1f} 可以先看成 {f}{c},表示输出时会用变量 fc 的值会替换掉这两个占位符,后面的 %.1f 表示这是一个浮点数,小数点后保留 1 位有效数字。

print(f'{f:.1f}华氏度 = {c:.1f}摄氏度')

试一试:

python day-01-15/day-02/deg-converter.py

输入年份判断是不是闰年

"""
输入年份判断是不是闰年
"""

year = int(input("请输入年份:"))
is_leap = year % 4 == 0 and year % 100 != 0 \
          or year % 400 == 0
print(is_leap)

试一试:

python day-01-15/day-02/is-leap.py