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’

数据类型总结

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

python语法,基础的更多相关文章

  1. (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md

    第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...

  2. python语法基础笔记

    本篇笔记基于博主自己的的学习,理解,总结所写.很多东西可能存在误解,不能保证百分之百的正确. 1. 数据表达1.1 常量和变量1.2 数据类型1.2.1 基本数据元素1.2.1.1 数字1.2.1.2 ...

  3. Python | Python语法基础

    目录 前言 1. 变量与简单数据结构 2. 列表相关 3. 集合 4. If语句 5. 字典 6. 用户输入和while循环 7. 函数 8. 类与对象 9. 文件 10. 异常 11. 测试 最后 ...

  4. python 笔记2:python语法基础

    python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...

  5. python语法基础-面向对象-基础-长期维护

    ###############    类的基本操作    ############## """ 类的基本认识: 1,类就是一个模子 2,dict,list都是类,具体的一 ...

  6. day_02~day_09的Python语法基础

    Python基础学习 day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> ...

  7. python语法基础-初始化/继承

    写了一些程序,基本上都是直接def函数 然后在main方法中 调用 但是在一些应用程序中 会有基本语法的使用(初始化,继承) 初始化: 1.在程序执行时一定执行一次的操作 2.python中初始化in ...

  8. python语法基础-网络编程-TCP协议和UDP协议

    ###############    网络编程    ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...

  9. python语法基础-异常操作-长期维护

    ###############    python-异常的操作  ############### # 异常:python解释器遇到一个错误,会停止程序的执行,并且提示错误信息,这就是异常, # 抛出异 ...

  10. python语法基础-文件操作-长期维护

    ###############    python-简单的文件操作  ############### # python中文件的操作 # 文件操作的基本套路 # 1,打开文件,默认是是只读方式打开文件 ...

随机推荐

  1. 三分钟秒懂BIO/NIO/AIO区别?

    首先来举个例子说明吧,假设你想吃一份盖饭: 同步阻塞:你到饭馆点餐,然后在那等着,还要一边喊:好了没啊! 同步非阻塞:在饭馆点完餐,就去遛狗了.不过溜一会儿,就回饭馆喊一声:好了没啊! 异步阻塞:遛狗 ...

  2. 【NOI2015】 软件包管理器 - 树链剖分

    noi2015 软件包管理器 Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软 ...

  3. 你真的会做 2 Sum 吗?| 含双重好礼

    小预告:文末有两份福利,记得看到最后哦- 2 Sum 这题是 Leetcode 的第一题,相信大部分小伙伴都听过的吧. 作为一道标着 Easy 难度的题,它真的这么简单吗? 我在之前的刷题视频里说过, ...

  4. 动态数组java实现

    数组是一种顺序存储的线性表,所有元素的内存地址是连续的. 动态数组相对于一般数组的优势是可以灵活地添加或删除元素.而一般数组则受限于固定的内存空间.只能有限的添加元素 动态数组(Dynamic Arr ...

  5. kolla快速集成openstack-ocata和opencontrail-4.0.1.0单节点

    参考链接: kolla快速集成openstack-ocata和opencontrail-4.0.1.0单节点 https://github.com/Juniper/contrail-docker/wi ...

  6. selenium定位方法实例

    selenium定位方法实例 首先打开浏览器输入微博的网址,将网页最大化,等待3秒 from selenium import webdriver import time driver = webdri ...

  7. lammps-MD整体思路

    1.收敛性测试 (1)由不同尺寸模型(不同的原子数)和E的关系曲线,再确定尺寸n*n*n: 2.优化结构(nve-nvt-npt) 系综的实现方式(相关命令):https://www.cnblogs. ...

  8. ID3\C4.5\CART

    目录 树模型原理 ID3 C4.5 CART 分类树 回归树 树创建 ID3.C4.5 多叉树 CART分类树(二叉) CART回归树 ID3 C4.5 CART 特征选择 信息增益 信息增益比 基尼 ...

  9. Istio的流量管理(实操三)

    Istio的流量管理(实操三) 涵盖官方文档Traffic Management章节中的egress部分.其中有一小部分问题(已在下文标注)待官方解决. 目录 Istio的流量管理(实操三) 访问外部 ...

  10. 搜索会抓取网站域名的whoise信息吗

    http://www.wocaoseo.com/thread-309-1-1.html 网站是否在信产部备案,这是不是会成为影响网站收录和排名的一个因素?百度是否会抓取域名注册人的相关whois信息吗 ...