当前位置: 首页 > news >正文

python基础 - 变量

知识点1: print函数里可以用英文逗号, 分隔字符和变量,字符串要用双引号引起来,而变量名不用引起来,同时print的时候也可以直接写数学运算公式

知识点2: python里和用户交互的函数是input,但它有一个特点,它会把用户输入的所有数据都认为是字符串,而不去区分是数字或者其它格式的数据

可以使用type函数来检查你的数据是啥格式

eval函数就是用来转换成数字的,它的特点是可以自动识别用户输入的数字类型,比如是整型、浮点型等;但当用户输入字符串或者包含字符串时,就会报错了。

In [2]: a = input("请输入内容:")
请输入内容:123In [3]: a
Out[3]: '123'In [5]: type(a)
Out[5]: strIn [6]: type(eval(a))
Out[6]: int

连续赋值,交换变量

In [10]: a = b = c = 23In [11]: a
Out[11]: 23In [12]: b
Out[12]: 23In [13]: c
Out[13]: 23In [14]: b = 44In [15]: a, b = b, aIn [16]: a
Out[16]: 44In [17]: b
Out[17]: 23

1)变量名规则:只能是大小写字母、数字和下划线组成,但是不能以数字开头
2)python中区分大小写

int函数将数字转换为整形,比如int(1.99) 之后是1,它会舍掉小数点后的所有数字
round函数实现四舍五入,当小数正好为.5时,它会取离该数最近的偶数,注意是偶数
round也可以定义小数点后面数字个数

In [19]: int(1.99)
Out[19]: 1In [20]: round(1.335555, 2)
Out[20]: 1.34In [21]: round(1.34521, 2)
Out[21]: 1.35In [22]: round(1.5)
Out[22]: 2In [23]: round(2.5)
Out[23]: 2

ord函数可以获取字符串的ASCII值
chr函数可以通过ASCII的值获取对应的字符

In [25]: ord('a')
Out[25]: 97In [26]: chr(97)
Out[26]: 'a'

小常识: 在python3,使用了unicode编码,这样保证了中文、日文、韩文等象形文字的正常显示。 在python2时,使用的为ASCII码编码,所以中文字符串显示有问题。
在python2时,为了避免乱码,我们都会在代码头部写一行

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

在python3都不用带这行了,你带上也没错

python里也经常用脱义符号 \ , 比如打印单引号
print里面的end表示结束符,默认它的值就是换行\n,我们也可以自定义
利用end的用法,可以将两行连在一起
用+也可以连接字符, 这个是最常见的

In [33]: print("aaa bbb", end='123')
aaa bbb123
In [43]: print("a + b = ",end=' '); print(a+b)
a + b =  67In [44]: print("a + b = "); print(a+b)
a + b =
67In [48]: a
Out[48]: 'abc'In [49]: b
Out[49]: 'def'In [52]: print(a+b) #变量识别为白色,字符为黄色
abcdefIn [55]: print('a'+'b') #连接字符
abIn [56]: a= 'abc'In [57]: a +='def'In [58]: a
Out[58]: 'abcdef'

格式化数字的除了round外,还有个format
format比round更加专业,因为round会自动忽略最后面的0
format格式化之后,会变成字符串类型,而不是数字类型,这点要注意
format除了定义小数点后面位数,还可以定义字符串的长度
如果想让它在后面补空格,可以加个 <

1)d对应整形,s对应字符串,f对应浮点数,其中d和f都是数字,f是字符串
2)当是数字时,默认向右对齐,而字符时,向左对齐
3)当字符时,用> 向右对齐

In [61]: round(1.303, 2)
Out[61]: 1.3In [62]: format(1.303, ".2f")
Out[62]: '1.30'In [63]: format(1.303, "10.2f")  #10小数点前有10位吧
Out[63]: '      1.30'In [64]: format(1.303, "<10.2f")  #如果想让它在后面补空格,可以加个 <
Out[64]: '1.30  In [65]: format(100, "5d")
Out[65]: '  100'In [67]: format('abc', "5s")
Out[67]: 'abc  'In [68]: format('abc', ">5s")
Out[68]: '  abc'

print格式
注意格式: 先是一串字符串用双引号引起来,里面的变量值,用%d %f %s代替,然后双引号后面是一个%作为分隔,再往后呢是变量名,或者直接数据,比如下面的:
这里的- 表示左对齐,如果不加- 默认就是右对齐了

In [74]: print("hello, %s, your id is %d" %(b, a))
hello, abc, your id is 10In [75]: print("Hello, %s, your id is %d" % (b, a))
Hello, abc, your id is 10In [76]: print ("His height is %.2f m" % (1.70))
His height is 1.70 mIn [77]: print ("Name:%10s Age:%8d Height:%8.2f"%("Jim",25,1.70))
Name:       Jim Age:      25 Height:    1.70In [78]: print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Jim",25,1.70))
Name:Jim        Age:25       Height:1.70In [79]: format('1111', '10s').replace(' ', '*') #替换成其他
Out[79]: '1111******'

相关文章:

  • 78.网游逆向分析与插件开发-背包的获取-背包类的C++还原与获取物品名称
  • Python基础之文件操作(I/O)
  • html 3D 倒计时爆炸特效
  • mac os电脑用n切换node版本
  • 【ARM 嵌入式 C 入门及渐进7 -- C代码中的可变参数宏详细介绍】
  • 【0247】PG内核checkpoint实现机制分析(2)
  • QT发送request请求
  • Kubernetes(K8S)拉取本地镜像部署Pod 实现类似函数/微服务功能(可设置参数并实时调用)
  • html火焰文字特效
  • MySQL修炼手册12:视图:简化复杂查询与保护数据
  • 高效火情监测,科技助力森林防火【数字地球开放平台】
  • gin数据解析和绑定
  • 【牛客】几何糕手、国际裁判带师、数位dp?、灵异背包、矩阵快速幂签到、第一次放学
  • 化妆-护肤品选购
  • SASS简介及使用方法
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CentOS从零开始部署Nodejs项目
  • CSS实用技巧干货
  • Electron入门介绍
  • extract-text-webpack-plugin用法
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Linux CTF 逆向入门
  • MD5加密原理解析及OC版原理实现
  • python学习笔记 - ThreadLocal
  • SpringBoot几种定时任务的实现方式
  • Swoft 源码剖析 - 代码自动更新机制
  • webpack+react项目初体验——记录我的webpack环境配置
  • 阿里云前端周刊 - 第 26 期
  • 程序员最讨厌的9句话,你可有补充?
  • 从0实现一个tiny react(三)生命周期
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 回顾 Swift 多平台移植进度 #2
  • 计算机在识别图像时“看到”了什么?
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • # 数据结构
  • $(function(){})与(function($){....})(jQuery)的区别
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (007)XHTML文档之标题——h1~h6
  • (8)STL算法之替换
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十一)手动添加用户和文件的特殊权限
  • (四)鸿鹄云架构一服务注册中心
  • (未解决)macOS matplotlib 中文是方框
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转载)利用webkit抓取动态网页和链接
  • . Flume面试题
  • .chm格式文件如何阅读
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 使窗口永不获得焦点
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • [android] 手机卫士黑名单功能(ListView优化)
  • [C++]四种方式求解最大子序列求和问题