Python学习记录01

Python学习记录01

1、编译型语言和解释型语言

解释型语言:程序不需要预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但在运行程序时必须先解释再运行。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。
区别:
1.速度:编译型语言比解释型语言执行速度快
2.跨平台性:解释型语言比编译型语言跨平台性好

2、python的注释

单行注释:以#和空格开头,可以注释掉从**#**开始后面一整行的内容
多行注释:三个引号开头,三个引号结尾

3、pycharm的常用快捷键

ctrl+/:单行注释快捷键
ctrl+alt+l:全局格式化快捷键,适合强迫症患者使用hh
ctrl+d:添加与当前行相同的行
ctrl+y:删除当前行
我这里的keymap选用windows版本的;
可以自行修改快捷键,教程如下:https://jingyan.baidu.com/article/9faa7231805ca8063c28cb82.html

4、变量

格式:变量名 = 值
python属于弱语言,变量声明的时候对数据类型不是很严格。
Java:int a = 100; float b = 0.1;
python:a = 100 //变量的数据类型取决于后面赋的值类型
name = ‘zhangsan’

5、数据类型

在这里插入图片描述

# 声明变量
money = 20
# 查看变量类型
type(money)  # 这里不打印值
print(type(money))  # <class 'int'>
print(money) # 20

# 无论是单引号、双引号或三引号都是字符串类型
# 三引号是保留格式输出的字符串
a1 = '''
               晚晴
              李商隐
        深居俯夹城,春去夏犹清。
        天意怜幽草,人间重晚晴。
        并添高阁迥,微注小窗明。
        越鸟巢干后,归飞体更轻。
'''
print(a1)

6、类型转换

# input() 输入语句
# print() 输出语句
a2 = input("请输入一个数字:")  # 输入10
print(a2)  # 打印10 类型是string
print(type(a2))  # <class 'str'>
# 类型转换
print(type(int(a2)))  # <class 'int'>
# ----------------------------------
c1 = 3.1
print(int(c1))  # 浮点型转整型没问题,打印3
c2 = input("请输入一个浮点数:")  # c2是浮点型的字符串类型,如输入3.1,若输入的是整型的字符串类型如10,则不报错
print(int(c2))  # 浮点型的字符串类型转整型会报错,ValueError: invalid literal for int() with base 10: '3.1'

7、运算符

(1)算术运算符:+ - * / % // **
a = 1
b = 2
c = a + b  # 3
print(a, b, c, sep=',')  # 1,2,3
print(a + b)  # 3
print(c - a)  # 2
print(c * a)  # 3
print(10 / 7)  # 1.4285714285714286 除法
print(11 // 2)  # 5 取商
print(11 % 2)  # 1 取余
print(2 ** 3)  # 2的3次幂=8
# --------------------------------
# 将输入三位数的个十百位分别输出
d1 = int(input("请输入一个三位数"))
ge = d1 % 10
shi = d1 // 10 % 10
bai = d1 // 100
print(bai, shi, ge)
(2)赋值运算符:= += -= *= /= //= **= %=
a = 8
b = 4

a += 2
print(a)  # 10
a -= 2
print(a)  # 8
a *= 2
print(a)  # 16
a /= 2
print(a)  # 8.0
a //= 3
print(a)  # 2.0
a %= 3
print(a)  # 2.0
a **= 3
print(a)  # 8.0
(3)关系运算符:> < == != >= <= is

结果:true false

# 输入考试分数,判断成绩是否在80到100之间
score = float(input("输入分数:"))
print(80 <= score <= 100)  # 这里和Java的处理手法不同:score<=100&&score>=80
(4)逻辑运算符:and or not
# 逻辑与 只要有假即假
# and 两边都是非0数字,结果是最后的数字值
a = 1
b = 3
print(a and b)  # 3
c = 4
print(a and c)  # 4
# and 两边只要有一边为0数字,结果就是0
d = 0
print(a and d)  # 0
print(d and a)  # 0
# ------------------------------
# 逻辑或 只要有真即真
# or
a = 1
b = 2
print(a or b)  # 1
c = 3
print(c or b)  # 3
d = 0
e = 0
print(a or d)  # 1
print(d or a)  # 1
print(d or e)  # 0
# -----------------------------
# 逻辑非
# not
flag = True
print(not flag)  # false
a = 1  # 非0即true
print(not a)  # false
(5)位运算符

位运算是针对二进制进行的运算
& | ^ ~ << >>

n1 = 0b0110  # ---->6
n2 = 0b0010  # ---->2

# 与&
print(n1 & n2)  # 2
"""
0b0110
0b0010
0b0010  -----> 2
"""
print(5 & 9)  # 1
"""
0b0101  ----->5
0b1001  ----->9
0b0001  ----->1
"""

# 或|
print(n1 | n2)  # 6
"""
0b0110
0b0010
0b0110  ----->6
"""

# 异或^:相同为0不同为1
print(n1 ^ n2)
"""
0b0110
0b0010
0b0100  ----->4
"""

# 取反~
print(~n1)  # 9
print(~9)
"""
0b 0 0110  
0b 1 1001  补码
0b 1 1000  反码
0b 1 0111  原码 -7
~9
0b 0 1001
0b 1 0110
0b 1 0101
0b 1 1010  原码 -10
"""

取反部分的详细解说请看这个链接:https://blog.csdn.net/weixin_42348856/article/details/125133270

# 移位运算
n = 12  # 0000 1100
# 左移一位相当于乘2
print(12 << 1)  # 0001 1000 ----> 24 = 12 * 2
print(12 << 2)  # 0011 0000 ----> 48 = 12 * 2 * 2
print(12 << 3)  # 0110 0000 ----> 96 = 12 * 2 * 2 * 2
# 右移一位相当于除2
print(12 >> 1)  # 0000 0110 ----> 6 = 12 // 2
print(12 >> 2)  # 0000 0011 ----> 3 = 12 // 2 // 2
print(12 >> 3)  # 0000 0001 ----> 1 = 12 // 2 // 2 // 2
(6)运算符优先级

在这里插入图片描述

8、格式化输出

字符串只能与字符串拼接

name = '小米'
age = 20
# print(name + "今年" + age + "岁了") 字符串只能与字符串拼接
print(name + "今年" + str(age) + "岁了") 

python格式化输出符号列表:
在这里插入图片描述
格式化输出用法:中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式,多个表达式必须使用小括号( )包围起来

# 格式化输出
# 中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式,多个表达式必须使用小括号( )包围起来
print('%s今年%d岁了' % (name, age))  # 小米今年20岁了
print('%s今年%s岁了' % (name, age))  # 小米今年20岁了,任何类型都可以自动转型为字符串
money = 99.99
print('%s今年%d岁了,他有%f钱' % (name, age, money))  # 小米今年20岁了,他有99.990000
print('%s今年%d岁了,他有%.2f钱' % (name, age, money))  # 小米今年20岁了,他有99.99

9、进制转换

前缀:0b:二进制 0o:八进制 0x:十六进制
转十进制int(n);转八进制oct(n);转十六进制hex(n);转二进制bin(n)

# 十进制转二进制
n = 149
result = bin(n)
print(result)  # 0b10010101
# 十进制转八进制
result = oct(n)
print(result)  # 0o225
# 十进制转十六进制
result = hex(n)
print(result)  # 0x95
# ---------------------------
n = 0x558
# 十六进制转化为十进制
result = int(n)  # int 默认将字符串或数字转成十进制整型
print(result)  # 1368
# 十六进制转化为二进制
result = bin(n)  # bin 是向二进制转换,无论当前参数是几进制
print(result)  # 0b10101011000
print(int(0b10101011000))  # 1368
# 十六进制转化为八进制
result = oct(n)
print(result)  # 0o2530
print(int(0o2530))  # 1368
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值