首页 > 代码库 > python学习第二节

python学习第二节

python3中的input与python2中的raw_input一样
python2中的input()用户输入的是什么类型,就被定义为什么类型,所以在python2中
input()中需要加‘’ 定义为字符串,否则会以为是变量名,然而没有这个变量名的值,所以会报错。

技术分享

end=‘ ‘
将print自带的换行符换成空

输出1-10 除了7

技术分享

1-100的和

技术分享

技术分享

找出所有奇数

技术分享

#求1-2+3-4+5 ... 99的所有数的和

技术分享

限制用户登录

技术分享

技术分享

字符串格式操作符
2.7
print "%s is number %d!" % ("python" ,1)
3.5
print ("%s is number %d" % ("python" ,1))

%s表示由一个字符串来替换,%d表示由一个整形来替换,%f表示由一个浮点型来替换。

程序输入和raw_input()内建函数 2.x里有,3.x里没有,2.x尽可能不用input

user = raw_input(‘Enter login name:‘)

print ‘Your login is:‘,user

输入数值字符串,并将字符串转换为整形
num = raw_input(‘Now enter a number:‘)

print ‘Doubling your number: %d‘ % (int(num) * 2)

name = “aliex li”
name2 = name #name2赋值为name
print (“my name is”,name,name2)

name = “tom” #更改name赋值 看name2会不会随其改变
print (name,name2)

实验结果为不随其改变,原因是name2并没有指向name,而是直接指向alex li

变量定义规则:
1 变量名只能是字母、数字、下划线的任意组合
2 变量名的第一个字符不能是数字
3 还有一些关键字不能声明为变量名 例如and as break assert class等等

变量名一般书写方法

gf_of_oldboy = “xxx” #下划线
GFOfOldBoy = “xxx” #首字母大写
PIE =” apple pie” 自定义常量,用大写,意思是不应更改


input 用户输入
username = input("your username :")

password = input("your password :")

print ("your name is %s ,your password is %s" % (username,password))


input输入并转换字符类型
age = int(input(‘your age :‘))

格式化输出小例子
name = input(‘your name :‘)

age = int(input(‘your age :‘))

print(type(age)) #打印变量类型

job = input(‘your job :‘)

info = ‘‘‘

--------------info of %s--------------

name: %s

age: %d

job: %s‘‘‘ % (name,name,age,job)

print (info)

另一种格式化拼接输出

name = input(‘your name :‘)

age = int(input(‘your age :‘))

print(type(age)) #打印变量类型

job = input(‘your job :‘)

info2 = ‘‘‘

--------------info2 of {_name}--------------

name: {_name}

age: {_age}

job: {_job}

‘‘‘.format(_name = name,

_age = age,

_job = job)

print (info2)

第三种格式化拼接输出
name = input(‘your name :‘)

age = int(input(‘your age :‘))

print(type(age)) #打印变量类型

job = input(‘your job :‘)

info3 = ‘‘‘

--------------info3 of {0}--------------

name: {0}

age: {1}

job: {2}

‘‘‘.format(name,age,job)

print (info3)

密文输入,调用getpass模块,该模块在Pycharm中不能使用,可以用cmd中执行py文件

import getpass

name = input(‘your name :‘)

age = getpass.getpass(‘your age :‘)

job = input(‘your job :‘)

info3 = ‘‘‘

--------------info3 of {0}--------------

name: {0}

age: {1}

job: {2}

‘‘‘.format(name,age,job)

print (info3)

简单的if语句例子
username = ("tom")

password = ("abc")

import getpass

name = input("Enter your name :")

passwd = getpass.getpass("Enter your password")

if name == username and passwd == password:

print("Welcome user {user} login".format(user = username))

else:

print("Invalid username or password")


错误提示
IndentationError 缩进错误
一级代码要顶格写
if语句
age_of_old_boy = 56

guess_age = int(input("guess age :"))

if guess_age == age_of_old_boy:

print("bingo,you got it")

elif guess_age > age_of_old_boy:

print("try to smaller")

else:

print("try to bigger")

while循环
age_of_old_boy = 56

count = 0

while True:

if count == 3:

break

guess_age = int(input("guess age :"))#这个赋值相当于把上面的if结束了,所以下面要用if而不是elif

if guess_age == age_of_old_boy:

print("bingo,you got it")

break

 

elif guess_age > age_of_old_boy:

print("try to smaller")

else:

print("try to bigger")

count += 1
结尾增加判断输出:
age_of_old_boy = 56

count = 0

while count < 3:

guess_age = int(input("guess age :"))

if guess_age == age_of_old_boy:

print("bingo,you got it")

break

 

elif guess_age > age_of_old_boy:

print("try to smaller")

else:

print("try to bigger")

count +=1

if count == 3:

print ("you have tried too many times,fuck off")
or
age_of_old_boy = 56

count = 0

while count < 3:

guess_age = int(input("guess age :"))

if guess_age == age_of_old_boy:

print("bingo,you got it")

break

 

elif guess_age > age_of_old_boy:

print("try to smaller")

else:

print("try to bigger")

count +=1

else:

print ("you have tried too many times,fuck off")

while循环升级版

age_of_old_boy = 56

count =0

while count <3:

guess_age = int(input("guess age :"))

if guess_age == age_of_old_boy:

print("bingo,you got it")

break

 

elif guess_age > age_of_old_boy:

print("try to smaller")

else:

print("try to bigger")

count +=1

if count ==3:

keep_guessing = input("Do you want to keep guessing ?")

if keep_guessing != ‘no‘:

count =0

continue 功能是跳出本次循环,继续下一次循环

for i in range(0,10):

if i <3:

print(‘loop‘,i)

else:

continue

print(‘hehe‘)

for循环套for循环,break跳出本次循环
for i in range(10):

print(‘-----‘,i)

for j in range(10):

print(j)

if j >5:

break



读和写
fout = open(‘output.txt‘,‘w‘) #打开文件output,以W参数模式

 

line1 = "This here‘s the wattle,\n"

fout.write(line1) #将line1写到output.txt

 

line2 = ‘the emblem of our land.\n‘

fout.write(line2) #将line2写到output.txt

fout.close() #关闭文件


文件名和路径
os模块提供了用于操作文件和目录的函数(os代表operating system,即操作系统)。
os.getcwd 返回当前目录的名称

import os

cwd = os.getcwd()

print(cwd)

cwd表示current working directory 当前工作目录,是相对路径。

os.path.abspath(‘memo.txt’)来寻找文件绝对路径。
absolute_path=os.path.abspath(‘output.txt‘)

print(absolute_path)

利用os.path.exists(‘memo.txt’)来判断文件是否存在。
import os

exists=os.path.exists(‘relativity.txt‘)

print(exists)

还有检查是否为目录、是否为文件、等等具体参考《像计算机科学家一样思考python》147页。(os.path.isdir os.path.isfile os.listdir(cwd)


保存脚本为文件例子:
say_daddy=‘‘‘

#/usr/bin/env python

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

#Author: Yuqiuyang

baba = "爸爸"

count = 0

while True:

if count == 10:

break

呐喊 = input(‘叫爸爸 :‘)

if 呐喊==baba:

print(‘乖儿子,爽不爽‘)

break

elif 呐喊 != baba:

print(‘看我干不死你‘)

count +=1

print(‘啊 射了,好累。。‘)‘‘‘

 

fout = open("say_daddy.py",‘w‘)

fout.write(say_daddy)

fout.close()

模块初识别

import sys

print(sys.path) #打印绝对路径

print(sys.argv) #打印相对路径,还可以打印参数

import os

cmd_res = os.system("dir") #os.system()可以直接与系统交互,执行dir命令,不保存结果

print(cmd_res) #并不能打印出dir命令,因为system()直接输出到屏幕,打印结果为0,执行成功意思。

import os

cmd_res = os.popen("dir") #打印为内存对象地址

print(cmd_res)

字符串操作

name = ‘my name is alex‘

print(name.count(‘a‘)) #计数a有多少个

print(name.capitalize())#首字母大写

print(name.center(50,‘-‘))#重复50遍-,并将name至中间

print(name.endswith(‘ex‘))#判断以ex结尾

name2 = ‘my \tname is alex‘

print(name2.expandtabs(tabsize=30))#将tab键转换为30个空格

print(name.find(‘e‘)) #查找索引

print(name[name.find(‘names‘):])#字符串也可以切片

name3 = ‘my name is {mingzi},and my age is {years}‘

print(name3.format(mingzi = ‘yuqiuyang‘,years = 23)) #格式操作

print(name3.format_map({‘mingzi‘:‘yuqiuyang‘,‘years‘:‘23‘})) #字典的方式格式操作

 

print(‘abc123‘.isalnum()) #包含英文字符和数字为true

print(‘abc123=‘.isalnum())#包含特殊字符为false

print(‘abC‘.isalpha())#判断是否为英文字母

print(‘1‘.isdecimal())#判断是否为十进制

print(‘1‘.isdigit())#判断是否为数字

print(‘a1A‘.isidentifier())#判断是不是一个合法的变量名
print(‘A‘.islower())#判断是否为小写

print(‘2‘.isnumeric())#判断是否为数字

print(‘ ‘.isspace())#判断是否为空格

print(‘My Name Is ‘.istitle())#判断是否每个首字母大写

print(‘My name is‘.isprintable())#判断是否能打印。tty file,drive file不能打印

print(‘MY NAME IS‘.isupper())#判断是否都为大写

print(name.ljust(50,‘*‘))# 这个是Ljust,长50,没有用*号结尾补齐

print(name.rjust(50,‘-‘))# 这个是Ljust,长50,没有用-号开头补齐

print(‘ALEX‘.lower())#将大写变成小写

print(‘ALEX‘.upper())#将小写变成大写

print(‘ALEX\n‘.lstrip())#将左边空格和回车,右边的不去除

print(‘---‘)

print(‘ ALEX\n‘.rstrip())#将右边空格和回车,左边的不去除

print(‘---‘)

print(‘ ALEX\n‘.strip())#去掉所有空格和回车

print(‘---‘)

p = str.maketrans(‘abcdefghi‘,‘123456789‘)#字母和数字一一对应

print(‘abed bi‘.translate(p))#将前面的字母转换成相应的数字

print(‘alex li‘.replace(‘l‘,‘L‘))#将l替换成L

print(‘alex li‘.replace(‘l‘,‘L‘,1))#将第1个l替换成L

print(‘alex li‘.rfind(‘l‘))#找到最右边l的下标

print(‘al ex li‘.split(‘l‘))#将字符串以l做分隔符做成列表

print(‘1+2+3+4‘.split(‘+‘))#将字符串以+做分隔符做成列表

print(‘1+2+3+4‘.splitlines())#将以换行符为分隔符做列表

print(‘Alex Li‘.swapcase())#字母大小写取反

print(‘alex li‘.title())#首字母大写

print(‘alex li‘.zfill(50))#字数不够在前面补齐0

 

python学习第二节