Python-Day02

变量和类型

  • 整型:Python中可以处理任意大小的整数(Python 2.x中有int和long两种类型的整数,但这种区分对Python来说意义不大,因此在Python 3.x中整数只有int这一种了),而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。
  • 浮点型:浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。
  • 字符串型:字符串是以单引号或双引号括起来的任意文本,比如'hello'"hello",字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)。
  • 布尔型:布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5会产生布尔值True,而2 == 1会产生布尔值False)。
  • 复数型:形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j

 

变量命名

  • 硬性规则:
    • 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。
    • 大小写敏感(大写的a和小写的A是两个不同的变量)。
    • 不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。
  • PEP 8要求:
    • 用小写字母拼写,多个单词用下划线连接。
    • 受保护的实例属性用单个下划线开头(后面会讲到)。
    • 私有的实例属性用两个下划线开头(后面会讲到)。

 

 

 

=================================================分割线==========================================

例1

#使用变量保存数据并进行算术运算

a = 321
b = 123
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)

 

例2

#使用input函数输入

使用int()进行类型转换

用占位符格式化输出的字符串

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 = %d' % (a, b, a ** b))

例3

#使用type()检查变量的类型

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

 

在对变量类型进行转换时可以使用Python的内置函数(准确的说下面列出的并不是真正意义上的函数,而是后面我们要讲到的创建对象的构造方法)。

  • int():将一个数值或字符串转换成整数,可以指定进制。

  • float():将一个字符串转换成浮点数。

  • str():将指定的对象转换成字符串形式,可以指定编码。

  • chr():将整数转换成该编码对应的字符串(一个字符)。

  • ord():将字符串(一个字符)转换成对应的编码(整数)。

运算符

Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,我们会陆续使用到它们。

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

 

说明: 在实际开发中,如果搞不清楚优先级可以使用括号来确保运算的执行顺序。

例4.1

a = 5
b = 10
c = 3
d = 4
e = 5
a += b    #   a=a+b 
a -= c
a *= d
a /= e
print("a = ", a)

 

a = 5
b = 10
c = 3
d = 4
e = 5
a = a + b    
a = a - c
a = a * d
a= a / e
print("a = ", a)

【在java语言中,a+=b和a=a+b的主要区别是在运算的精度上。类似的有“-= 、 *= 、/= 、%= ”,这里以a+=b 与 a=a+b 举例说明一下。】

若a=a+b的形式:a=a+4  

根本无法运行。报错原因我也贴出来了,说是“类型不匹配:不能从int转换为byte”,

这里因为a是byte类型,而数字4默认是int 类型。在java中,在a+4时,会进行自动类型转换 ,所以a+4 会转换成int类型。而变量a还是byte类型,将int 类型的a+4赋值给byte类型的a ,无疑会报错。

错误原因:类型不同

a+=b的形式:a+=4


发现结果是正确的,程序也没毛病。大家需要明确的是“+=”是java中的一个运算符,而不是两个,所以在运算时会进行自动类型转换。所以在编译时没有报错。

此处两种形式的不同参考博客来源:Java中 a+=b和a=a+b有什么区别?

 

例4.2

flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not flag1
print("flag1 = ", flag1)
print("flag2 = ", flag2)
print("flag3 = ", flag3)
print("flag4 = ", flag4)
print("flag5 = ", flag5)
print(flag1 is True)
print(flag2 is not False)

===============================================分割线===========================================

练习1  华氏温度转摄氏温度

"""F = 1.8C + 32"""

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

 

注意1:

%d %s %c 你可以认为%是一种格式 是控制输出数据类型的

%d整形

%s 字符串

%c 字符

一般用在输出在用~10%3 = 1 在这里 %是取余用的 就是数学中的 10 处于 3 = 3 余 1 取的是 1

注意2:

%.0f表示不输出小数位,但要对第一位小数进行四舍五入
%.1f,表示保留一位小数,对第二位小数进行四舍五入

 

练习2

"""
输入半径计算圆的周长和面积
"""

import math

radius = float(input('请输入圆的半径: '))
perimeter = 2 * math.pi * radius
area = math.pi * radius * radius
print('周长: %.2f' % perimeter)
print('面积: %.2f' % area)
print( perimeter)
print( area)

 

练习3

"""
输入年份 如果是闰年输出True 否则输出False

普通闰年:能被4整除但不能被100整除的年份为普通闰年。
世纪闰年:能被400整除的为世纪闰年。

"""

year = int(input('请输入年份: '))
# 如果代码太长写成一行不便于阅读 可以使用\或()折行
is_leap = (year % 4 == 0 and year % 100 != 0 or
           year % 400 == 0)
print(is_leap)

C语言中 1个等号和2个等号的区别为:

= 表示把一个值赋值给变量, == 表示比较两个变量是否相等

 

C语言中 1个等号为赋值运算符,意思是:赋值         = 赋值运算符的表现形式为: 变量 = 表达式

C语言中 2个等号为关系运算符,意思是:判断两边的值是否相等。        == 关系运算符的表现形式为: 变量1 == 变量2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值