1 python介绍
2 变量和数据类型
2.1 注释的使用
a.单行注释:#
b.多行注释:''' '''、""" """
2.2 变量以及数据类型
格式:变量名=值(=:赋值)
变量:容器
弱语言:变量声明的时候对数据类型不是很严格
Java:int a=100;float b=9.9;
Python:a=100
变量名的命名规范:
1.由字母,数字,下划线组成,且不能以数字开头
2.严格区分大小写
3.不能使用关键字
注:起变量名时,要见名知义
变量名格式:
1.小驼峰式:开头第一个单词小写,其他单词首字母大写
eg:getNameByLine
2.大驼峰式:每一个单词首字母大写
eg:GetNameByLine
3.用下划线连接所有单词
eg:get_name_by_line
数据类型:int、float、string、boolean
2.3 标识符以及关键字
标识符是程序中用来标识变量、函数、类、模块或其他对象的名字。
关键字:
and del from not while
as elif global or with
assert else if pass yield
break except import print
class exec in raise
continue finally is return
def for lambda try
2.4 输出语句
print(str)
格式符号 | 转换 |
%% | 输出%号 |
%s | 字符串 |
%d | 有符号十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(0x) |
%X | 十六进制整数(0X) |
%e | 科学计数法('e') |
%E | 科学计数法('E') |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
# 格式化输出
name='张三'
age=18
print('%s今年%d岁'%(name,age)) # 张三今年18岁
money=99.95
# %f是选转成str,再输出
print('一共消费%f元'%(money)) # 一共消费99.950000元
print('一共消费%.2f元'%(money)) # 一共消费99.95元
# 二进制:0,1
# 八进制:0-7
# 十进制:0-9
# 十六进制:0-9 a-f
# 进制转换
# bin(x):binary 二进制
print(bin(149)) # 0b10010101
# oct(x):八进制
print(oct(149)) # 0o225
# hex(x):十六进制
print(hex(159)) # 0x9f
# 前缀:0b(二进制)、0o(八进制)、0x(十六进制)、默认十进制
2.5 输入语句
str=input()
2.6 类型转换
类型转换(以变量名a为例)
str --> int int(a) 但是如果是浮点数且是字符串类型,转成int的时候报错
str --> float float(a)
int --> str str(a)
float --> str str(a)
int --> float float(a)
float --> int int(a) 向下取整
bool --> int int(a) True --> 1, False --> 0
bool --> float float(a) True --> 1.0, False --> 0.0
bool --> str str(a) True --> 'True', False --> 'False'
int --> bool bool(a) 非0 --> True, 0 --> False
str --> bool bool(a) 非空 --> True, 空字符串 --> False
money = 28 #声明了一个名称叫money的变量,赋值为28
print(type(money)) #结果为:<class 'int'>
# money 是一个变量,后面的值允许发生变化
money = 20.8
print(type(money)) #结果为:<class 'float'>
# 通过 type(变量名) 输出变量类型
money = 0.52361
print(type(money)) #结果为:<class 'float'>
money = '1万'
print(type(money)) #结果为:<class 'str'>,代表的就是字符串
money = '10000'
print(type(money)) #结果为:<class 'str'>
money = "10000"
print(type(money)) #结果为:<class 'str'>
money = '''10000'''
print(type(money)) #结果为:<class 'str'>
message = '张三说:"今天天气很好!"'
print(message) #张三说:"今天天气很好!"
message = "张三说:'今天天气很好!'"
print(message) #张三说:'今天天气很好!'
# ''' ''':可以保留格式输出
shi = '''
静夜思
唐 李白
床前明月光,疑是地上霜。
举头思明月,低头思故乡。
'''
print(shi)
# 布尔类型:True、False(必须大写)
# 开发中的判断,eg:是否登陆成功,...
isLogin = True # 真
print(isLogin) # True
isLogin = False # 假
print(isLogin) # False
print(type(isLogin)) #结果为:<class 'bool'>
# input():输入
userName = input('请输入用户名:') #阻塞
print(userName) # 张三
print(type(userName)) # <class 'str'>
money = input('请输入缴费金额:')
print(money) # 20
print(type(money)) # <class 'str'>
#print(money+1000) 报错
# 类型转换 str ---> int
print(int(money)+1000) # 1020
# 类型转换 int ---> str
print(money+str(1000)) # 201000
3 运算符
3.1 算术运算符
算术运算符:+ - * / //(整除) %(取余) **(阶乘)
a = 3
b = 7
c=a+b
print(c) # 10
print(c-a) # 7
print(c*a) # 30
print(c/a) # 3.33333333333335
print(c//a) # 3
print(c%a) # 1
print(a**2) # 9
3.2 赋值运算符
赋值运算符:= += -= *= /= //= **= %=
a,b,c,d=3,7,5,3
a+=1 # a=a+1
print(a,b,c) # 4 7 5
a+=b # a=a+b
print(a,b,c) # 11 7 5
b+=a # b=b+a
print(a,b,c) # 11 18 5
b-=2 # b=b-2
print(a,b,c) # 11 16 5
a//=3 # a=a//3
print(a,b,c) # 3 16 5
3.3 比较运算符
关系运算符:> < >= <= == != is (结果:True False)
a=10
b=23
c=10
print(a>b) # False
print(a==b) # False
print(a==c) # True
print(a!=c) # False
x='abf'
y='abc'
print(x<y) # False
print(a is c) # True
#print(a is 10) # 报错
print(a<15<b) # True
3.4 逻辑运算符
逻辑运算符:and(与 并且) or(或) not
# 逻辑运算符:and(与 并且) or(或) not
'''
True and True ---> True
True and False ---> False
False and True ---> False
False and False ---> False
True or True ---> True
True or False ---> True
False or True ---> True
False or False ---> False
not True ---> False
not False ---> True
'''
a=1
b=3
# and 两边都是非0数字,结果是最后的数字
print(a and b) # 3
print(b and a) # 1
c=0
# and 两边只要有一侧为0,结果为0
print(c and a) # 0
print(a>c and a<b) # True
print(a==c and a<b) # False
print(b or a) # 3
print(a or b) # 1
print(c or b) # 3
print(c or a) # 1
print(a>c or a<b) # True
print(a==c or a<b) # True
print(not a>c) # False
print(not a==c) # True
3.5 位运算符
位运算:针对二进制进行的运算
& | ^ ~ << >>
'''
位运算:针对二进制进行的运算
& | ^ ~ << >>
& 按位与运算符 类似 and
0&0 ---> 0
0&1 ---> 0
1&0 ---> 0
1&1 ---> 1
| 按位或运算符 类似 or
0|0 ---> 0
0|1 ---> 1
1|0 ---> 1
1|1 ---> 1
^ 按位异运算符 当两对应的二进制位相异时,结果为1
0^0 ---> 0
0^1 ---> 1
1^0 ---> 1
1^1 ---> 0
~ 按位取反运算符
~0 ---> 1
~1 ---> 0
<< 左移动运算符:运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0。
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>>右边的数字指定了移动的位数
'''
n1 = 0b0110 # 6
n2 = 0b0011 # 3
print(n1&n2) # 0b0010 ---> 2
print(n1|n2) # 0b0111 ---> 7
print(n1^n2) # 0b0101 ---> 5
'''
已知十进制负数,求二进制负数:
1.正数的原码 2.原码取反-->反码 3.反码+1-->补码 得到的结果就是负数的二进制
eg:-7的二进制:
7的二进制:0000 0111 原码
反码:1111 1000
补码:1111 1001
-7的二进制是:1111 1001
已知二进制的负数(判断是否的负的二进制,看二进制的最高位,最高位为1是负数,最高位为0是正数),求对应的正数
1.二进制(负数) 2.二进制减1 3.取反 4.原码 将原码转成十进制,在十进制的前面添加负号
eg:二进制:1111 1010的十进制:
1111 1010 补码
-1: 1111 1001
取反: 0000 0110
原码: 0000 0110 ---> 6
原码 0110
反码 1001
补码 反码+1 10010 最高位为1是负数,最高位为0是正数
'''
print(~n1) # -7
3.6 运算符优先级
优先级从高到低
运算符 | 描述 |
** | 指数(最高优先级) |
~ + - | 按位翻转,一元加号和减号(最后两个的方法名为+@和-@) |
* / % // | 乘,除,取模,取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位'AND' |
^ | | 位运算符 |
<= < >= > | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= += -= *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not>and>or | 逻辑运算符 |
4 流程控制语句
4.1 条件判断语句
4.1.1 if语句的使用
'''
条件语句:
if
if语句的格式:
if 条件:
条件成立要执行的语句
'''
result=input('请输入(y/n):')
if result == 'y':
print(4)
print('over~~~~')
print('-----------')
4.1.2 if...else语句的使用
'''
条件语句:
if...else...
if语句的格式:
if 条件:
条件成立要执行的语句
else:
条件不成立要执行的语句
'''
# 随机数
import random
ran=random.randint(1,10)
guess=input('请输入你猜想的数:')
if ran==int(guess):
print('恭喜猜对了!')
else:
print('猜错了!随机数为%d'%(ran))
4.1.3 if...elif...elif...else语句的使用
'''
条件语句:
if...elif...else...
if语句的格式:
if 条件1:
条件1成立要执行的语句
elif 条件2:
条件2成立要执行的语句
......
else:
条件1,条件2,...不成立要执行的语句
'''
# 分数等级
score=float(input('请输入学生分数:'))
if score>=90:
print('A')
elif 80<=score<90:
print('B')
elif 60<=score<80:
print('C')
else:
print('D')
4.1.4 if语句的嵌套
# if语句的嵌套
# 分数等级
score=float(input('请输入学生分数:'))
if score>=60:
if score >= 90:
print('A')
elif 80 <= score < 90:
print('B')
else:
print('C')
else:
print('D')
4.1.5 if注意事项
1.区间比较:在Python中允许5<a<10的写法
2.三元运算符:变量 = 值1 if 条件 else 值2
# 格式:变量 = 值1 if 条件 else 值2
a=10
b=20
c=a if a>b else b # 获取两个数的最大值
print(c) # 20
3.自动类型转换:在Python中,转换成布尔值时,只有0,"",'',None,(),{},[]会被转换成False,其他都会转换成True