1.用缩进表达代码逻辑:推荐缩进4个空格

2.注释和续行与shell一样

在pycharm中,按ctrl + / 可以快速添加/取消注释

3.多个语句书写在同一行,可以使用分号进行分割。但不推荐

输出语句

主要采用的是print函数

###在python中函数调用需要添加()

>>>print("hello world")                #打印一个字符串
hello world

###在print函数的()中,输入的是参数,各个参数之间用逗号,隔开

>>> print("hao",123)             #打印字符串和数字
hao 123

###用sep可以指定分割符,分割符号可以随便指定

>>> print("hao", 123, "abc", sep="***")
hao***123***abc

输入语句

  • python中,通过input函数获取用户键盘输入
  • input函数的参数是字符串,它是屏幕提示语

#####变量赋值,= 两边空格可有可无#####

>>> user = input('username: ')           #用户输入内容保存到变量user中
username: zhangsan

>>> user                                          #使用变量

‘zhangsan’

练习:模拟用户登录

1.创建名为login.py的程序文件

2.程序提示用户输入用户名

3.用户输入用户名后,打印欢迎用户

vim login.py

user = input('请输入用户名: ')

print('welcome', user)

print('welcome %s' % user)

########### input读入的数据都是字符串类型,相同类型的数据才能运算#############

>>> num = input("number: ")
number: 10
>>> num + 5                                             #num是字符串,不能和数字进行运算
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> type(num)                                          # 查看num的类型
<class 'str'>
>>> int(num) + 5                                    #int函数将字符串转成整数
15
>>> str(5)
' 5 '

>>>num + str(5)                                 #str函数将对象转成字符串

‘105’

>>> num + "5"

'105'

变量

  • 字面量就是看到什么是什么,如‘abc’, 100
  • 变量是变化的量,看到什么不一定是什么。
  • 变量只是为了编写代码方便。 当看到变量时,应该透过变量  看到它代表的值
  • 编写代码时尽量多使用变量,而不是直接使用字面量。直接使用字面量是硬编码,代码可重用性差。
  • 变量名称约定
    • 第一个字符只能是大小写字母或下划线
    • 后续字符只能是大小写字母或数字或下划线

区分大小写

推荐采用的全名方法

  • 变量名全部采用小写字母,如pythonstring
  • 简短、有意义,如pystr
  • 多个单词间用下划线分割,如py_str
  • 变量名用名词,函数名用谓词(动词+名词),如phone/update_phone
  • 类名采用驼峰形式,如MyClass

变量在使用之前。必须先赋值

变量赋值是一个自由向左的运算,将=右边表达式的计算结果,赋值给左边的变量

>>>a = 10 + 5

>>>a

15

变量支持重新赋值

>>>a = 20

>>>a = a + 10                          #自右向左计算,赋值变量,将a+10的结果赋值给a

#以上代码可以简写

>>>a += 10

>>>a

>>>20

>>>a *= 2

>>>a

>>>40

注意:python不支持诸如i++/i--之类的操作

>>> a = 40
>>> ++a                    #正正为正
40
>>> --a                      #负负为正
40

运算符

算术运算符

#加减乘正常运算

#/是真正的除法

>>> 5 / 3
1.6666666666666667

# // 只保留商

>>> 5 // 3
1

# %是模运算,即求余

>>> 5 % 3
2

# ** 是幂运算

>>> 2 ** 3
8

#通过round函数实现四舍五入

>>> round(5 / 3)                        #5 / 3,默认保留到整数部分
2
>>> round(5 / 3, 2)                    #精确到小数点
1.67后2位

#divmod函数。可以同时得到商和余数

>>> divmod(5, 3)
(1, 2)
>>> a, b =divmod(5, 3)           商和余数分别赋值给a和b
>>> a
1
>>> b
2

#######################################################################

比较运算符

#判断是否相等使用 ==

>>> 3 == 3
True                                       #True是关键字,表示真

#判断是否不相等使用 !=

>>> 3 != 3
False                                       #False是关键字,表示假
#python支持连续比较

>>> 10 < 20 < 30
True

>>> 10 < 20 > 15
True

逻辑运算符

#and两边表达式结果全为True,最终才为真True

>>> 10 < 20 and 20 > 15
True

#or两边表达式全为False,最终才为False

>>> 10 < 20 or 20 > 100
True
>>> 100 < 20 or 20 >100
False

#not是单目运算符,将真变假,将假变成真

>>> 20 > 10
True
>>> not 20 > 10
False

数据类型

数字

  • 整数: 没有小数点
  • 浮点数: 有小数点
  • 布尔数:True为1,False为0

    >>> True + 1
    2
    >>> False * 5
    0

整数在不同进制下的表示方法

#python默认以10进制表示数字
#8进制以0o或0O开头

>>> 0o11                 1 * 8 + 1
9

#16进制默认以0x或0X开头

>>> 0x11           1 * 16 + 1
17

#2进制以0b或0B开头

>>> 0b11
3

#####0x235 转成10进制怎么算?

>>> 2 * 16 * 16 + 3 * 16 + 5
565

2小时3分5秒是多少秒?

>>> 2 * 60 * 60 + 3 * 60 + 5
7385

#0o235转换成10进制

>>> 2 * 8 * 8 + 3 * 8 + 5
157

#10000秒是几小时几分几秒?

>>> divmod(10000,60)
(166, 40)          ->> 166 分40秒
>>> divmod(166,60)
(2, 46)              ->> 2小时46分

#10000转成16进制数是?

>>> divmod(10000,16)
(625, 0)
>>> divmod(625,16)
(39, 1)
>>> divmod(39,16)
(2, 7)

>>> hex(10000)
'0x2710'

#10000转成8进制

>>> divmod(10000,8)
(1250, 0)
>>> divmod(1250,8)
(156, 2)
>>> divmod(156,8)
(19, 4)
>>> divmod(19,8)
(2, 3)

>>> 0o23420

10000

字符串

  • python中字符串被定义为引导之间的字符集合
  • python支持使用成对的单引号或者双引号
  • 无论单引号,还是双引号,表示意义相同
  • python还支持三引号(三个连续的单引号或者双引号),可以用来包含特殊字符

    >>> s1 = """tom
    ... jerry
    ... jack
    ... rose
    ... """
    >>> print(s1)
    tom
    jerry
    jack
    rose

  • 常见操作

>>> s1 = 'python'        
>>> len(s1)                       #取长度
6
>>> s1[0]                      #第一个字符        
'p'
>>> s1[6]                   #超出范围
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range

>>> s1[-1]                       #负数表示从右向左,最后的一个字符
'n'
>>> s1[-6]                      #自由向左第6个字符
'p'

>>> s1[2:4]                        #切片,起始下标包含,结束下标不包含
'th'

>>> s1[2:6]                        #切片时。下标超出范围是允许的
'thon'
>>> s1[2:]                       #结束下标不写,表示取到结尾

'thon'
>>> s1[2:]       #起始下标不写,表示从开头取
 ‘py’ 

>>>s1[:]           #默认取全部

>>> s1[::2]                  #步长值为2,取切片

’pto‘

>>> s1[1::2]
'yhn'

>>> 't' in s1              #t在s1中吗?
True
>>> 'th' in s1             
True
>>> 'to' in s1             #to在s1中吗?
False
>>> 'to' not in s1      #to不在s1中吗?
True

>>> s1 + ‘is good’         #字符串拼接

‘python is good

>>> '*' * 30                            字符串*重复30遍
'******************************'
>>> '#' * 30           
'##############################'
>>> s1 * 3
'pythonpythonpython'

列表

  • 列表可以当作数组使用
  • 字符串的相关操作同样适用于列表

>>> l1 = [10, 20, 5, 30, 8]
>>> len(l1)
5

>>> l1[0]
10

>>> l1[2:4]
[5, 30]
>>> 20 in l1
True
>>> l1.append(20)            #向列表尾部追加数字20
>>> l1
[10, 20, 5, 30, 8, 20]

元组

  • 可以理解为元组是不可变的列表
  • 列表的相关操作同样适用于元组

>>> t = (10, 20, 8, 38)
>>> len(t)
4
>>> 10 in t
True
>>> t[2]
8

l1[0] = 100                                   #将列表第一列改成100
>>> l1
[100, 20, 5, 30, 8, 20]
>>> t[0] = 100                         #元组不可变,报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

字典

  • 字典是由键-值(key-value)对构成的映射数据类型
  • 通过键取值,不支持下标操作
  • 字典是没有顺序的

>>> 'tom' in d1                    tom是字典的key吗
False
>>> 'name' in d1                #name是字典的key吗
True
>>> d1['name']                  #通过key取value

‘tom’

数据类型总结

  • 按存储模型分类
  • 标量:字符串、数字
  • 容器:列表、元组、字典
  • 按访问模型分类
  • 直接:数字
  • 顺序:字符串、列表、元组
  • 映射:字典
  • 按更新模型分类
  • 不可变:数字、字符串、元组
  • 可变:列表、字典

最新文章

  1. javascript严格模式
  2. angular源码分析:angular中脏活累活的承担者之$interpolate
  3. shell和bat 监控进程,自动关机
  4. Linux源码安装mysql步骤
  5. [SQL]LTRIM 、 RTRIM、SUBSTRING 如何使用
  6. MVC-READ5(asp.net web from PK asp.net MVC)
  7. 关于androidManifest.xml的概叙以及intent-filter的详细分析
  8. Samba 安全漏洞
  9. 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
  10. Linux Zynq GPIO中断
  11. Linux学习之sudo命令
  12. Python正则表达式完全指南(上)
  13. bootstrap导航栏.nav与.navbar区别
  14. BloomFilter——大规模数据处理利器
  15. C#学习笔记---C#操作SQL数据库
  16. pc端,移动端css重置样式
  17. 使用支持向量机(SVM) 算法进行分类
  18. js之获取url中&quot;?&quot;后面的字串
  19. Ubuntukylin-14.04-desktop(带分区)安装步骤详解
  20. Bash,Vim,gdb&amp;git常用命令

热门文章

  1. 搭建Elasticsearch Logstash Kibana 日志系统
  2. Linux中.bashrc与.bash_profile的对比
  3. python设计模式之模板模式
  4. myBatis源码解析-类型转换篇(5)
  5. python - 基础局部变量和全局变量
  6. java 二分查找的注意事项
  7. Java数据结构——顺序表
  8. shell 三剑客之 sed
  9. vs _ 用户代码片段 _ html模板
  10. Java BigDecimal使用指南