变量是什么?

变量的作用 

Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.

变量用于在计算机程序中存储要引用和操作的信息。它们还提供了用描述性名称标记数据的方法,因此读者和我们自己可以更清楚地理解我们的程序。将变量看作容器来保存信息是很有帮助的。他们唯一的目的是在内存中标记和存储数据。这些数据可以在整个程序中使用。

变量定义规范

声明变量

  1. name = "Alex Li"

变量定义规则

  1. 变量名只能是 字母、数字或下划线的任意组合
  2. 变量名的第一个字符不能是数字
  3. 以下关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

定义方式

驼峰体

  1. AgeOfOldboy = 56

下划线

  1. age_of_oldboy = 56

定义变量不好的方式举例

  • 变量名为中文、拼音
  • 变量名过长
  • 变量名词不达意
常量

常量即指不变的量,或在程序运行过程中不会改变的量

在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量

 注释

代码注释分单行和多行注释,单行注释用#,多行注释可以用三对双引号""" """

代码注释原则:

  1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
  2. 注释可以用中文或英文,但绝对不要拼音噢

用户交互

  1. # 将用户输入的内容赋值给 name 变量
  2. name = input("请输入用户名:")
  3. print (name) # 打印输入的内容

python2中有raw_input()和input()两种方式,第一种输出结果类型是str,第二种输出结果是int;python3中只有input()类型,输出结果类型是str

格式化输出

现有一练习需求,问用户的姓名、年龄、工作、爱好,然后打印成以下格式

  1. ------------ info of Eva_J -----------
  2. Name : Eva_J
  3. Age : 18
  4. job : Teacher
  5. ------------- end -----------------

你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势

只需要把要打印的格式先准备好, 由于里面的一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦

 
  1. name = input( " Name: " )
  2. age = input( " Age: " )
  3. job = input( " Job: " )
  4. hobbie = input( " Hobbie: " )
  5.  
  6. info = '''
  7. ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表后面拓号里的name
  8. Name : %s #代表name
  9. Age : %s #代表age
  10. job : %s #代表job
  11. Hobbie: %s #代表hobbie
  12. ------------- end -----------------
  13. ''' %(name,name,age,job,hobbie) # 这行的%号就是把前面的字符串与拓号后面的变量关联起来
  14.  
  15. print (info) 

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

  1. age : %d

我们运行一下,但是发现出错了。。。

说%d需要一个数字,而不是str, what? 我们明明输入的是数字呀,22,22呀。

不用担心,不要相信你的眼睛,我们调试一下,看看输入的到底是不是数字呢?怎么看呢?查看数据类型的方法是什么来着?type()

  1. name = input( " Name: " )
  2. age = input( " Age: " )
  3. print (type(age))
  4. 执行输出是
  5.  
  6. Name:Alex
  7. Age: 22
  8. < class ' str ' > # 怎么会是str
  9. Job:IT
  10. ....

让我大声告诉你,input接收的所有输入默认都是字符串格式!

要想程序不出错,那怎么办呢?简单,你可以把str转成int

  1. age = int( input( " Age: " ) )
  2. print (type(age))

肯定没问题了。相反,能不能把字符串转成数字呢?必然可以,str( yourStr )

格式化输出

1.%s替换

2.format替换字典

3.%()s字典的值替换

4.f"内容{}内容"

1.总结了一些简单基本的输出格式化形式以及函数format函数基本使用形式。

字符串格式化代码:

格式 描述
%% 百分号标记
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
  1. '''
  2. 可以指定所需长度的字符串的对齐方式:
  3. < (默认)左对齐
  4. > 右对齐
  5. ^ 中间对齐
  6. = (只用于数字)在小数点后进行补齐
  7. '''
  8. print('1:\t|{0:>10},'.format('wangyu'))
  9. print('2:\t|{0:4.2f}'.format(3.1415926))
  10. print('3:\t|', format(3.1415926, '<10.2f'))
  11. print('4:\t|{0:<10},{1:<15}'.format('wangyu', 3.1415926))
  12. print('5:\t|User ID: {uid} Last seen: {last_login}'.format(uid='root', last_login='5 Mar 2008 07:20'))
  13.  
  14. '''格式化指示符可以包含一个展示类型来控制格式。
  15. 例如,浮点数可以被格式化为一般格式或用幂来表示。
  16. 'b' - 二进制。将数字以2为基数进行输出。
  17. 'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
  18. 'd' - 十进制整数。将数字以10为基数进行输出。
  19. 'o' - 八进制。将数字以8为基数进行输出。
  20. 'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
  21. 'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
  22. 'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
  23. 'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
  24. '%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。
  25. '''
  26.  
  27. print('6:\t|{0:b}'.format(3))
  28. print('7:\t|{0:c}'.format(3))
  29. print('8:\t|{0:d}'.format(3))
  30. print('9:\t|{0:o}'.format(3))
  31. print('10:\t|{0:x}'.format(3))
  32. print('11:\t|{0:e}'.format(3.75))
  33. print('12:\t|{0:g}'.format(3.75))
  34. print('13:\t|{0:n}'.format(3.75)) # 浮点数
  35. print('14:\t|{0:n}'.format(3)) # 整数
  36. print('15:\t|{0:%}'.format(3.75))
  37.  
  38. # 输入形式的控制format
  39. a = int(input('a:'))
  40. b = int(input('b:'))
  41. print('16:\t|%*.*f' % (a, b, 1.1415926))
  42.  
  43. print('17:\t|{array[2]}'.format(array=range(10)))
  44. print('18:\t|{attr.__class__}'.format(attr=0))
  45. print('19:\t|{digit:*^ 10.5f}'.format(digit=1.0 / 3))
  46.  
  47. '''
  48. 类和类型可以定义一个__format__()方法来控制怎样格式化自己。
  49. 它会接受一个格式化指示符作为参数:
  50. '''
  51.  
  52. def __format__(self, format_spec):
  53. if isinstance(format_spec, unicode):
  54. return unicode(str(self))
  55. else:
  56. return str(self)

2.

  1. #使用str.format()函数
  2.  
  3. #使用'{}'占位符
  4. print('I\'m {},{}'.format('Hongten','Welcome to my space!'))
  5. print('#' * 40)
  6.  
  7. #也可以使用'{0}','{1}'形式的占位符
  8. print('{0},I\'m {1},my E-mail is {2}'.format('Hello','Hongten','hongtenzone@foxmail.com'))
  9. #可以改变占位符的位置
  10. print('{1},I\'m {0},my E-mail is {2}'.format('Hongten','Hello','hongtenzone@foxmail.com'))
  11. print('#' * 40)
  12.  
  13. #使用'{name}'形式的占位符
  14. print('Hi,{name},{message}'.format(name = 'Tom',message = 'How old are you?'))
  15. print('#' * 40)
  16.  
  17. #混合使用'{0}','{name}'形式
  18. print('{0},I\'m {1},{message}'.format('Hello','Hongten',message = 'This is a test message!'))
  19. print('#' * 40)
  20.  
  21. #下面进行格式控制
  22. import math
  23. print('The value of PI is approximately {}.'.format(math.pi))
  24. print('The value of PI is approximately {!r}.'.format(math.pi))
  25. print('The value of PI is approximately {0:.3f}.'.format(math.pi))
  26.  
  27. table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
  28. for name, phone in table.items():
  29. print('{0:10} ==> {1:10d}'.format(name, phone))
  30.  
  31. table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
  32. print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; ''Dcab: {0[Dcab]:d}'.format(table))

3.字典格式化插入

  1. dic = {'name':'老男孩','age':45}
  2. '%(name)s,%(age)s' % dic

4.f"{}" 双引号中是所有需要包含的内容,{}中是格式化替换的内容

  1. a ,b = "" ,""
  2. c = f'I\'m {a},{b}'
  3. print(c)

python的学习笔记01_2变量 常量 注释 用户交互 格式化输出的更多相关文章

  1. Python 3 学习笔记之——变量作用域、模块和包

    1. 变量作用域 Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的.变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称.Python 的作用域一共 ...

  2. Python基础学习_01字符串的拼接(字符串的格式化输出)

    # 字符串的拼接 ---字符串的格式化输出 # 字符串的拼接 ---字符串的格式化输出 name = input("name:") age = input("age:&q ...

  3. python基础知识梳理-----1变量,常量,注释

    因为公司用的是delphi ,所以自学了一阵delphi,但是随着语言的发展,delphi的前景堪忧啊.辞职以后打算好好学学python,然后找找数据分析和爬虫方面的工作. 记录此贴,仅作学习使用,所 ...

  4. [C语言学习笔记四]变量与系统的交互

    使用 const 创建常量和使用 volatie 优化变量 C语言中使用 const 定义常量. 例如: const INT a = 10; 此处如果添加a = 20;,编辑器则会报错,因为此处 a ...

  5. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  6. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  7. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  8. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  9. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

随机推荐

  1. udf提权原理详解

    0x00-前言 这个udf提权复现搞了三天,终于搞出来了.网上的教程对于初学者不太友好,以至于我一直迷迷糊糊的,走了不少弯路.下面就来总结一下我的理解. 想要知道udf提权是怎么回事,首先要先知道ud ...

  2. 微信小程序之滑动日历展示

    滑动日历效果 效果预览 实现要求:顶部固定悬浮的是获取未来一周的日期,分为上下两部分,上面部分显示星期,下面则显示具体日期.今天则显示今天,可点击头部具体日期,可向左向右滑动. 实现代码 顶部日历 页 ...

  3. Linux 系统调用过程详细分析

    内核版本:Linux-4.19 操作系统通过系统调用为运行于其上的进程提供服务. 那么,在应用程序内,调用一个系统调用的流程是怎样的呢? 我们以一个假设的系统调用 xyz() 为例,介绍一次系统调用的 ...

  4. Java 处理PDF图章(印章)——图片图章、动态图章

    图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门机关权威的重要指示物,常见于各种格式的文件.文档中.对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现.本篇文档分享通过 ...

  5. 抽象工厂模式(Abstract Factory Pattern)

    抽象工厂模式概述 定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类 抽象工厂抽象工厂,顾名思义,就是比工厂模式更抽象的工厂模式.在工厂模式中,一个具体工厂只负责生产一个具体产品 ...

  6. PMP应考知识点-合同类型以及选择要领

    合同类型的选择貌似是必考知识点,加上对合同类型的了解和选择的要领,对于开展日常工作来讲也是挺有必要的.所以这两天重新回顾并总结了合同的种类和各种类的选择要领,与大家分享. 转走请标明出处  https ...

  7. Storm入门(十三)Storm Trident 教程

    转自:http://blog.csdn.net/derekjiang/article/details/9126185 英文原址:https://github.com/nathanmarz/storm/ ...

  8. (转)ceph 常用 运维命令--查看信息 - 不错的文档

    下面是测试验证环节 1. 创建一个 pool rbd create foo --size 4 --image-format 2 --image-feature layering 2. 挂载和格式化 r ...

  9. web server性能优化浅谈

    作者:ZhiYan,Jack47 转载请保留作者和原文出处 Update: 2018.8.8 在无锁小节增加了一些内容 性能优化,优化的东西一定得在主路径上,结合测量的结果去优化.不然即使性能再好,逻 ...

  10. 腾迅云CDN的使用

    一开始,我是想和七牛云一样,将腾迅云的对象存储作为网盘使用,不过在折腾的时间,搞不清楚腾迅云CDN的用法,最后看文档,看博客,大概了解了 这里讲两种用法,一种是结合对象存储,作一个静态网站或下载站,但 ...