[Python]Re:从零开始学python——Day01~02 基础知识

国庆八天的休假说长不短,说短不长,趁着宅在家中的时间,打算从0开始学python。

1.基础

1.1 变量

python变量定义比较简单,不需要定义数据类型,直接写,就可以赋值

num=1

str="str"

与之相比,java中定义变量就得定义数据类型

int num = 1;

String str = "str";

还有不同的是,python中有复数的定义,java中就没有

查看变量的类型

print(type("i")) #<class 'str'>

1.2 标识符关键字

数字,字母,下划线组成,区分大小写,数字不能开头。

关键字可以用keyword查看。

import keyword

keywordList = keyword.kwlist

print(keywordList)

1.3 输入与输出

python2 里面输入是raw_input(),而python3里面是input()。

输出是 print()。

python的输出和C++有点类似

str =input("请输入内容")
print("输入的内容%s长度是%d"%(str,len(str)))

1.4 运算符

+,-,*,/,%。

需要注意的是 / 返回的类型是根据参数而定的,如果除数被除数都是整型返回的就是整型,如果有浮点型,那返回的就是浮点型。

#round(num,取值位数)

print(round(2.5/2,1)) #1.2

与java不同的地方有**代表幂运算,//代表结果取整

#幂运算

print(2**10)#1K

print(2**20)#1M

print(2**30)#1G

2.判断语句和循环语句

2.1 if判断

与java的花括号不同,python的if格式是用缩进来判断,if判断成功后,执行缩进中的内容

python中没有else if的写法,elif替代

inputNum =int(input("please input any number"))

if inputNum >=0 and inputNum <10:

    print("0 <= num < 10,num=%d"%inputNum)

elif inputNum >=10 and inputNum <20:

    print("10 <= num < 20,num=%d"%inputNum)

else:

    print("%d"%inputNum)

2.2 while循环

满足条件不停循环,和java没什么区别

2.3 for循环

for有点像java的foreach循环,但for不仅支持列表,也支持字符串

'''
输出:
a
b
c
d
e
'''
str = "abcde"
for i in str:
    print(i)

for...else表示for循环正常结束后(即不是break跳出),执行else代码块

for num in range(10,20):  # 迭代 10 到 20 之间的数字
    for i in range(2,num): # 根据因子迭代
        if num%i == 0:      # 确定第一个因子
            j=num/i          # 计算第二个因子
            print('%d 等于 %d * %d' % (num,i,j))
            break            # 跳出当前循环
    else:                  # 循环的 else 部分
        print (num, '是一个质数')

2.4 continue与break

不支持break/continue a的语法,只能break/continue最近一层循环

2.5 应用

写了个猜拳小游戏练习了下基础

import random

while True:
    player = input("请输入 剪刀(0) 石头(1) 布(2),结束游戏请输入end")

    if(player == "end"):
        break

    if(not player.isnumeric()):
        print("请输入数字")
        continue
    else:
        player = int(player)

    if(player <0 or player > 2):
        print("请输入0,1,2")
        continue

    system = random.randint(0,2)

    if player - system == 1 or player - system == -2:
        print("获胜")
    elif player == system:
        print("平局")
    else:
        print("输了")

3.函数,字符串,列表

3.1 简单函数

函数定义

#分割线
def line():
    print("-"*12+"华丽的分割线"+"-"*12)

3.1.1 时间函数

import time  # 引入time模块

currentTime = time.time() #返回从1970.1.1开始至今的秒数
nowTime = time.asctime(time.localtime(currentTime))
print("当前时间戳为:", currentTime) 
print("本地时间为:",nowTime)

3.1.2 日历

import calendar

cal = calendar.month(2017, 10)
print("2017年10月份的日历:")
print(cal)

3.1.3 随机函数

import random

for i in range(0,10):
    print(random.randint(0,100))

3.2 字符串

python对字符串操作有一套现成的方法,操作起来异常简单

3.2.1 取索引

str = "hello world"

print(str[2:-1]) #从下标2的地方取到倒数第一位。'llo worl'
print(str[2:]) #从下标2的地方取到最后一位。'llo world'

3.2.2 格式化

和c++的类似

常用的就%s,%d,%f

3.2.3 find & rfind

检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1

find:从左边开始找

rfind:从右边开始找

str = "hello world"

print(str.find('world', 0, len(str))) #6

3.2.4 index & rindex

跟find()方法一样,只不过找不到,会报异常.

index:从左边开始找

rindex:从右边开始找

str = "hello world"

print(str.index('world', 0, len(str))) #6

3.2.4 count

返回出现的次数

str = "hello world"

print(str.count('world', 0, len(str))) #1

3.2.4 replace

替换内容,如果 count 指定,则替换不超过 count 次.

str = "hello world"

print(str.replace('world', 'python', str.count('world')))  #hello python

3.2.4 split

切割返回列表

str = "hello world"

print(str.split(' '))  #['hello', 'world']

3.2.5 capitalize

第一个字母大写

str = "hello world"

print(str.capitalize()) #Hello world

3.2.6 startswith & endswith

判断是否以什么开头,以什么结尾

str = "hello world"

print(str.startswith("h")) #True
print(str.endswith("d")) #True

3.2.7 lower & upper

字符串全部转为小写,全部转为大写

3.2.8 ljust & rjust & center

ljust:返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

rjust:返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

center:返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

str = "hello world"

print("|"+str.ljust(20)+"|") #|hello world         |

print("|"+str.rjust(20)+"|") #|         hello world|

print("|"+str.center(20)+"|") #|    hello world     |

3.2.9 lstrip & rstrip

lstrip:删除左边的空格

rstrip:删除右边的空格

str = "   hello world   "

print("|"+str.lstrip()+"|") #|hello world   |

print("|"+str.rstrip()+"|") #|   hello world|

3.2.10 partition & rpartition

分割成三部分,str前,str和str后

partition:从左边开始

rpartition:从右边开始

str = "hello world"

print(str.partition('l'))  #('he', 'l', 'lo world')

print(str.rpartition('l'))  #('hello wor', 'l', 'd')

3.2.11 splitlines

按照行分隔,返回一个包含各行作为元素的列表

str = "hell\no wor\nld"

print(str.splitlines()) #['hell', 'o wor', 'ld']

3.2.12 isalnum

如果字符都是字母或数字则返回 True,否则返回 False

3.2.13 isalpha

如果字符只包含字母则返回 True,否则返回 False

3.2.14 isdigit

如果字符只包含数字则返回 True,否则返回 False

3.2.15 isspace

如果字符只包含空格,则返回 True,否则返回 False.

3.2.16 isupper

如果字符都是大写,则返回 True,否则返回 False.

3.2.17 islower

如果字符都是小写,则返回 True,否则返回 False.

3.2.18 join

每个字符后面插入,构造出一个新的字符串

str = "hello world"

print("*".join(str)) #h*e*l*l*o* *w*o*r*l*d

3.3 列表

列表支持不同数据类型在同一个列表中,java一个数组只支持一种数据类型

3.3.1 索引

'''
输出
xiaoWang
xiaoZhang
xiaoHua
'''
A = ['xiaoWang','xiaoZhang','xiaoHua']
print(A[0])
print(A[1])
print(A[2]

3.3.2 for循环

'''
输出
xiaoWang
xiaoZhang
xiaoHua
'''
A = ['xiaoWang','xiaoZhang','xiaoHua']

for tempName in A:
    print(tempName)

3.3.3 增:append

通过append可以向列表添加元素,添加到最后位置

A = ['xiaoWang','xiaoZhang','xiaoHua']
A.append("xiaoMing")

3.3.4 改:=

通过下标来赋值

A = ['xiaoWang','xiaoZhang','xiaoHua']

A[0] = "xiaoMing"

3.3.5 查: in / not in

A = ['xiaoWang','xiaoZhang','xiaoHua']

if 'xiaoWang' in A:
    print("find")

3.3.6 删:del / remove / pop

del:根据下表删除

remove:根据内容删除

pop:删除最后一个元素(最新添加的元素)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,557评论 1 118
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,598评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 目标:稳定持续的月盈利60万以上 殊胜的春节,睡得自然醒,起床就闻到百合香,心情好好。梳洗完毕做了感恩冥想、为爸爸...
    千雯阅读 160评论 0 1
  • 紫荆花开忆香江!
    南国乔木A阅读 197评论 0 0